Class: PadlockAuth::Jwt::AccessToken
- Inherits:
-
AbstractAccessToken
- Object
- AbstractAccessToken
- PadlockAuth::Jwt::AccessToken
- Defined in:
- lib/padlock_auth/jwt/access_token.rb
Instance Method Summary collapse
- #accessible? ⇒ Boolean
- #forbidden_token_reason ⇒ Object
- #header ⇒ Object
- #includes_scope?(required_scopes) ⇒ Boolean
-
#initialize(jwt, strategy) ⇒ AccessToken
constructor
A new instance of AccessToken.
- #invalid_token_reason ⇒ Object
- #payload ⇒ Object
Constructor Details
#initialize(jwt, strategy) ⇒ AccessToken
Returns a new instance of AccessToken.
6 7 8 9 10 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 6 def initialize(jwt, strategy) @jwt = jwt @encoded_token = JWT::EncodedToken.new(jwt) @strategy = strategy end |
Instance Method Details
#accessible? ⇒ Boolean
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 12 def accessible? return false unless valid_jwt_token? return false unless includes_required_claims? # "exp" (Expiration Time) Claim return false unless valid_exp_claim? # "nbf" (Not Before) Claim return false unless valid_nbf_claim? # "iss" (Issuer) Claim return false unless valid_iss_claim? # "jti" (JWT ID) Claim return false unless valid_jti_claim? # "sub" (Subject) Claim return false unless valid_sub_claim? true end |
#forbidden_token_reason ⇒ Object
67 68 69 70 71 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 67 def forbidden_token_reason return :invalid_jwt_token unless valid_jwt_token? :invalid_aud_claim end |
#header ⇒ Object
73 74 75 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 73 def header @encoded_token.header if valid_jwt_token? end |
#includes_scope?(required_scopes) ⇒ Boolean
61 62 63 64 65 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 61 def includes_scope?(required_scopes) return false unless valid_jwt_token? required_scopes.none? || valid_aud_claim?(required_scopes.map(&:to_s)) end |
#invalid_token_reason ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 35 def invalid_token_reason return valid_header? ? :invalid_signature : :invalid_jwt_token unless valid_jwt_token? return :missing_exp_claim unless includes_required_exp_claim? return :invalid_exp_claim unless valid_exp_claim? return :missing_nbf_claim unless includes_required_nbf_claim? return :invalid_nbf_claim unless valid_nbf_claim? return :missing_iss_claim unless includes_required_iss_claim? return :invalid_iss_claim unless valid_iss_claim? return :missing_aud_claim unless includes_required_aud_claim? # validity checked by #includes_scope? return :missing_jti_claim unless includes_required_jti_claim? return :invalid_jti_claim unless valid_jti_claim? return :missing_iat_claim unless includes_required_iat_claim? return :missing_sub_claim unless includes_required_sub_claim? return :invalid_sub_claim unless valid_sub_claim? super # :unknown end |
#payload ⇒ Object
77 78 79 |
# File 'lib/padlock_auth/jwt/access_token.rb', line 77 def payload @encoded_token.payload if valid_jwt_token? end |