Sha256: f86a768e213edc77858a5754415b7a0befc776b237898122f9ebcd29bd2d8b25
Contents?: true
Size: 1.56 KB
Versions: 5
Compression:
Stored size: 1.56 KB
Contents
module RailsSso class App attr_reader :strategy, :session, :provider_client def initialize(strategy, session, provider_client) @strategy, @session, @provider_client = strategy, session, provider_client end def fetch_user_data FetchUser.new(provider_client.token!(current_access_token_value)).call rescue ResponseError => e refresh_access_token! do FetchUser.new(provider_client.token!(current_access_token_value)).call end if e.code == :unauthenticated end def refresh_access_token! save_access_token!(access_token.refresh!) yield if block_given? rescue ::OAuth2::Error nil rescue ResponseError => e nil if e.code == :unauthenticated end def save_access_token!(access_token) session[:access_token] = access_token.token session[:refresh_token] = access_token.refresh_token end def access_token return token_mock if RailsSso.config.test_mode? OAuth2::AccessToken.new(strategy.client, session[:access_token], { refresh_token: session[:refresh_token] }) end def invalidate_access_token! if RailsSso.config.provider_sign_out_path access_token.delete(RailsSso.config.provider_sign_out_path) end end private def current_access_token_value session[:access_token] or current_access_token_mock end def current_access_token_mock if RailsSso.config.test_mode? token_mock.token end end def token_mock @token_mock ||= RailsSso::TokenMock.new end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
rails_sso-0.7.5 | lib/rails_sso/app.rb |
rails_sso-0.7.4 | lib/rails_sso/app.rb |
rails_sso-0.7.3 | lib/rails_sso/app.rb |
rails_sso-0.7.2 | lib/rails_sso/app.rb |
rails_sso-0.7.1 | lib/rails_sso/app.rb |