Class: Legion::Auth::TokenManager
- Inherits:
-
Object
- Object
- Legion::Auth::TokenManager
show all
- Defined in:
- lib/legion/auth/token_manager.rb
Defined Under Namespace
Classes: TokenExpiredError
Instance Method Summary
collapse
Constructor Details
#initialize(provider:) ⇒ TokenManager
Returns a new instance of TokenManager.
11
12
13
|
# File 'lib/legion/auth/token_manager.rb', line 11
def initialize(provider:)
@provider = provider
end
|
Instance Method Details
#ensure_valid_token ⇒ Object
40
41
42
43
44
|
# File 'lib/legion/auth/token_manager.rb', line 40
def ensure_valid_token
return secret[:"#{@provider}_access_token"] if token_valid?
refresh_access_token
end
|
#mark_revoked! ⇒ Object
50
51
52
|
# File 'lib/legion/auth/token_manager.rb', line 50
def mark_revoked!
secret[:"#{@provider}_token_revoked"] = true
end
|
#revoked? ⇒ Boolean
46
47
48
|
# File 'lib/legion/auth/token_manager.rb', line 46
def revoked?
secret[:"#{@provider}_token_revoked"] == true
end
|
#store_tokens(access_token:, expires_in:, refresh_token: nil, scope: nil) ⇒ Object
32
33
34
35
36
37
38
|
# File 'lib/legion/auth/token_manager.rb', line 32
def store_tokens(access_token:, expires_in:, refresh_token: nil, scope: nil)
secret[:"#{@provider}_access_token"] = access_token
secret[:"#{@provider}_refresh_token"] = refresh_token if refresh_token
secret[:"#{@provider}_token_ttl"] = expires_in
secret[:"#{@provider}_token_scope"] = scope if scope
secret[:"#{@provider}_token_expires_at"] = (Time.now + expires_in).iso8601
end
|
#token_valid? ⇒ Boolean
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/legion/auth/token_manager.rb', line 15
def token_valid?
access_token = secret[:"#{@provider}_access_token"]
return false unless access_token
expires_at_str = secret[:"#{@provider}_token_expires_at"]
return false unless expires_at_str
expires_at = Time.parse(expires_at_str)
ttl = secret[:"#{@provider}_token_ttl"]
expires_at > if ttl
Time.now + (ttl * 0.25)
else
Time.now + 300
end
end
|