Class: OmniAuth::Strategies::OpenIDConnect
- Inherits:
-
Object
- Object
- OmniAuth::Strategies::OpenIDConnect
- Includes:
- OmniAuth::Strategy
- Defined in:
- lib/omniauth/strategies/openid_connect.rb
Defined Under Namespace
Classes: CallbackError
Instance Method Summary collapse
- #authorization_code ⇒ Object
- #authorize_uri ⇒ Object
- #callback_phase ⇒ Object
- #client ⇒ Object
- #config ⇒ Object
- #public_key ⇒ Object
- #request_phase ⇒ Object
Instance Method Details
#authorization_code ⇒ Object
114 115 116 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 114 def request.params["code"] end |
#authorize_uri ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 118 def client.redirect_uri = .redirect_uri opts = { response_type: .response_type, scope: .scope, state: new_state, nonce: (new_nonce if .send_nonce), hd: .hd, } client.(opts.reject{|k,v| v.nil?}) end |
#callback_phase ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 89 def callback_phase error = request.params['error_reason'] || request.params['error'] if error raise CallbackError.new(request.params['error'], request.params['error_description'] || request.params['error_reason'], request.params['error_uri']) elsif request.params['state'].to_s.empty? || request.params['state'] != stored_state return Rack::Response.new(['401 Unauthorized'], 401).finish elsif !request.params["code"] return fail!(:missing_code, OmniAuth::OpenIDConnect::MissingCodeError.new(request.params["error"])) else .issuer = issuer if .issuer.blank? discover! if .discovery client.redirect_uri = .redirect_uri client. = access_token super end rescue CallbackError => e fail!(:invalid_credentials, e) rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e fail!(:timeout, e) rescue ::SocketError => e fail!(:failed_to_connect, e) end |
#client ⇒ Object
75 76 77 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 75 def client @client ||= ::OpenIDConnect::Client.new() end |
#config ⇒ Object
79 80 81 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 79 def config @config ||= ::OpenIDConnect::Discovery::Provider::Config.discover!(.issuer) end |
#public_key ⇒ Object
130 131 132 133 134 135 136 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 130 def public_key if .discovery config.jwks else key_or_secret end end |
#request_phase ⇒ Object
83 84 85 86 87 |
# File 'lib/omniauth/strategies/openid_connect.rb', line 83 def request_phase .issuer = issuer if .issuer.blank? discover! if .discovery redirect end |