Sha256: 23749f3be14a9f7d23512866a7287829e5a19c7799bc1ea27ea37c6f729cad1a
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
module OpenIDConnect class Client < Rack::OAuth2::Client attr_optional :check_session_endpoint, :user_info_endpoint def initialize(attributes = {}) super @user_info_endpoint ||= '/user_info' @check_session_endpoint ||= '/id_token' end def authorization_uri(params = {}) params[:response_type] ||= :token params[:scope] = setup_required_scope params[:scope] Rack::OAuth2::Util.redirect_uri absolute_uri_for(authorization_endpoint), :query, params.merge( :client_id => self.identifier, :redirect_uri => self.redirect_uri ) end def check_session_uri absolute_uri_for check_session_endpoint end def user_info_uri absolute_uri_for user_info_endpoint end private def setup_required_scope(scopes) scopes = Array(scopes).join(' ').split(' ') if scopes.include?('openid') scopes else (scopes << 'openid') end.join(' ') end def handle_success_response(response) token_hash = JSON.parse(response.body).with_indifferent_access case token_type = token_hash[:token_type].try(:downcase) when 'bearer' AccessToken.new token_hash.merge(:client => self) else raise Exception.new("Unexpected Token Type: #{token_type}") end rescue JSON::ParserError raise Exception.new("Unknown Token Type") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
openid_connect-0.0.10 | lib/openid_connect/client.rb |