class OmniAuth::Strategies::Edenred

Public Instance Methods

callback_phase() click to toggle source

Added JWT.decode

# File lib/omniauth/strategies/edenred.rb, line 30
def callback_phase
        begin
                error = request.params["error_reason"] || request.params["error"]
                if error
                        fail!(error, CallbackError.new(request.params["error"], request.params["error_description"] || request.params["error_reason"], request.params["error_uri"]))
                elsif !options.provider_ignores_state && (request.params["state"].to_s.empty? || request.params["state"] != session.delete("omniauth.state"))
                        fail!(:csrf_detected, CallbackError.new(:csrf_detected, "CSRF detected"))
                else
                        self.access_token = build_access_token
                        self.access_token = access_token.refresh! if access_token.expired?

                        @raw_info = JWT.decode(access_token.params['id_token'], nil, false).first
                        env['omniauth.auth'] = auth_hash
                        call_app!
                end
        rescue ::OAuth2::Error, CallbackError => e
                fail!(:invalid_credentials, e)
        rescue ::Timeout::Error, ::Errno::ETIMEDOUT => e
                fail!(:timeout, e)
        rescue ::SocketError => e
                fail!(:failed_to_connect, e)
        rescue ::JWT::DecodeError => e
                fail!(:jwt_decode, e)
        end
end
callback_url() click to toggle source

Required for omniauth-oauth2 >= 1.4 github.com/intridea/omniauth-oauth2/issues/81

# File lib/omniauth/strategies/edenred.rb, line 77
def callback_url
        full_host + script_name + callback_path
end
raw_info() click to toggle source
# File lib/omniauth/strategies/edenred.rb, line 71
def raw_info
        @raw_info || {}
end
setup_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/edenred.rb, line 17
def setup_phase
        super

        if options[:sandbox] === true
                options[:client_options] = {
                        :site => 'https://sso.auth-sandbox.api.edenred.com/idsrv',
                        :authorize_url => 'https://sso.auth-sandbox.api.edenred.com/idsrv/connect/authorize',
                        :token_url => 'https://sso.auth-sandbox.api.edenred.com/idsrv/connect/token',
                }
        end
end