class OAuth::Provider::Authorizer
Attributes
app[RW]
params[RW]
user[RW]
Public Class Methods
new(user, authorized, params = {})
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 8 def initialize(user, authorized, params = {}) @user = user @params = params @authorized = authorized end
Public Instance Methods
code()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 18 def code @code ||= ::Oauth2Verifier.create! :client_application => app, :user => @user, :scope => @params[:scope], :callback_url => @params[:redirect_uri] end
encode_response()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 70 def encode_response response.map do |k, v| [URI.escape(k.to_s),URI.escape(v)] * "=" end * "&" end
redirect_uri()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 36 def redirect_uri uri = base_uri if params[:response_type] == 'code' if uri.query uri.query << '&' else uri.query = '' end uri.query << encode_response else uri.fragment = encode_response end uri.to_s end
response()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 51 def response r = {} if ['token','code'].include? params[:response_type] if authorized? if params[:response_type] == 'code' r[:code] = code.token else r[:access_token] = token.token end else r[:error] = 'access_denied' end else r[:error] = 'unsupported_response_type' end r[:state] = params[:state] if params[:state] r end
token()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 25 def token @token ||= ::Oauth2Token.create! :client_application => app, :user => @user, :scope => @params[:scope], :callback_url => @params[:redirect_uri] end
Protected Instance Methods
base_uri()
click to toggle source
# File lib/oauth/provider/authorizer.rb, line 78 def base_uri URI.parse(params[:redirect_uri] || app.callback_url) end