Class: TRMNLP::OAuth::Session
- Inherits:
-
Object
- Object
- TRMNLP::OAuth::Session
- Defined in:
- lib/trmnlp/oauth/session.rb
Instance Method Summary collapse
- #access_token ⇒ Object
- #authorize_url(redirect_uri:, state:, code_challenge: nil) ⇒ Object
- #complete(code:, redirect_uri:, code_verifier: nil) ⇒ Object
- #configured? ⇒ Boolean
- #connected? ⇒ Boolean
- #disconnect ⇒ Object
-
#initialize(provider:, token_store:, client:) ⇒ Session
constructor
A new instance of Session.
- #liquid_variables ⇒ Object
- #pkce? ⇒ Boolean
Constructor Details
#initialize(provider:, token_store:, client:) ⇒ Session
Returns a new instance of Session.
8 9 10 11 12 |
# File 'lib/trmnlp/oauth/session.rb', line 8 def initialize(provider:, token_store:, client:) @provider = provider @token_store = token_store @client = client end |
Instance Method Details
#access_token ⇒ Object
25 |
# File 'lib/trmnlp/oauth/session.rb', line 25 def access_token = current_bundle&.access_token |
#authorize_url(redirect_uri:, state:, code_challenge: nil) ⇒ Object
38 39 40 |
# File 'lib/trmnlp/oauth/session.rb', line 38 def (redirect_uri:, state:, code_challenge: nil) client.(redirect_uri:, state:, code_challenge:) end |
#complete(code:, redirect_uri:, code_verifier: nil) ⇒ Object
42 43 44 |
# File 'lib/trmnlp/oauth/session.rb', line 42 def complete(code:, redirect_uri:, code_verifier: nil) token_store.write(client.exchange_code(code:, redirect_uri:, code_verifier:)) end |
#configured? ⇒ Boolean
14 |
# File 'lib/trmnlp/oauth/session.rb', line 14 def configured? = provider.configured? |
#connected? ⇒ Boolean
18 19 20 21 22 23 |
# File 'lib/trmnlp/oauth/session.rb', line 18 def connected? return false unless configured? stored = token_store.read !stored.nil? && !stored.access_token.nil? end |
#disconnect ⇒ Object
46 |
# File 'lib/trmnlp/oauth/session.rb', line 46 def disconnect = token_store.clear |
#liquid_variables ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/trmnlp/oauth/session.rb', line 27 def liquid_variables return {} unless connected? bundle = current_bundle { 'oauth_access_token' => bundle.access_token, 'oauth_token_type' => bundle.token_type, 'oauth_client_id' => provider.client_id } end |
#pkce? ⇒ Boolean
16 |
# File 'lib/trmnlp/oauth/session.rb', line 16 def pkce? = provider.pkce? |