Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class PagesController < ApplicationController
- require 'base64'
- require 'openssl'
- require 'active_support'
- require 'net/http'
- def canvas
- @app_id = '176818735711209'
- @secret = 'dc1e1300b441bf7a664b37f6593dd608'
- @fb_uri = 'https://www.facebook.com/dialog/oauth'
- @client_id = '176818735711209'
- @redirect_uri = 'http://empty-spring-91.heroku.com/canvas'
- @scope = 'email,user_birthday,friends_birthday'
- @response_type = 'token'
- @title = 'ika app'
- #@query = parse_signed_request(request.query_string,@secret)
- end
- private
- def base64_url_decode(str)
- str += '=' * (4 - str.length.modulo(4))
- Base64.decode64(str.tr('-_','+/'))
- end
- def parse_signed_request(signed_request,secret)
- encoded_sig, payload = signed_request.split('.')
- sig = base64_url_decode(encoded_sig)
- data = ActiveSupport::JSON.decode(base64_url_decode(payload));
- if data["algorithm"].upcase != "HMAC-SHA256"
- logger.debug "Unknow algorithm. Expecting HMAC-SHA256"
- return nil
- end
- expected_sig = OpenSSL::HMAC.digest('sha256', payload, secret)
- if sig != expected_sig
- logger.debug "Bad signed JSON signature!"
- return nil
- end
- return data
- end
- def parse_request(query_string)
- query_string.split(/&/).inject({}) do |hash, setting|
- key, val = setting.split(/=/)
- hash[key.to_sym] = val
- hash
- end
- end
- def get_content(url)
- Net::HTTP.get_response(URI.parse(url)).body
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement