Skip to content

Commit 0aebca7

Browse files
authored
Merge pull request #161 from XeroAPI/validate_on_callback
Optimise the jwt_validation code
2 parents f7b7d55 + 743bf52 commit 0aebca7

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

lib/xero-ruby/api_client.rb

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ def id_token
110110
end
111111

112112
def decoded_access_token
113-
decode_jwt(@config.access_token)
113+
decode_jwt(@config.access_token, false)
114114
end
115115

116116
def decoded_id_token
117-
decode_jwt(@config.id_token)
117+
decode_jwt(@config.id_token, false)
118118
end
119119

120120
def set_token_set(token_set)
@@ -166,10 +166,14 @@ def validate_state(params)
166166
return true
167167
end
168168

169-
def decode_jwt(tkn)
170-
jwks_data = JSON.parse(Faraday.get('https://identity.xero.com/.well-known/openid-configuration/jwks').body)
171-
jwk_set = JSON::JWK::Set.new(jwks_data)
172-
JSON::JWT.decode(tkn, jwk_set)
169+
def decode_jwt(tkn, verify=true)
170+
if verify == true
171+
jwks_data = JSON.parse(Faraday.get('https://identity.xero.com/.well-known/openid-configuration/jwks').body)
172+
jwk_set = JSON::JWK::Set.new(jwks_data)
173+
JSON::JWT.decode(tkn, jwk_set)
174+
else
175+
JSON::JWT.decode(tkn, :skip_verification)
176+
end
173177
end
174178

175179
def token_expired?

lib/xero-ruby/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
=end
1212

1313
module XeroRuby
14-
VERSION = '2.10.1'
14+
VERSION = '2.10.2'
1515
end

0 commit comments

Comments
 (0)