class OmniAuth::Strategies::JWT
Public Instance Methods
callback_phase()
click to toggle source
Calls superclass method
# File lib/omniauth/strategies/jwt.rb, line 56 def callback_phase super rescue ClaimInvalid => e fail! :claim_invalid, e end
decoded()
click to toggle source
# File lib/omniauth/strategies/jwt.rb, line 28 def decoded @decoded ||= ::JWT.decode(request.params['token'], options.secret, false, {algorithm: options.algorithm})[0] uri = URI.parse('https://login.xsolla.com/api/token/validate') header = {'Content-Type': 'application/json'} body = {token: request.params['token']} # Create the HTTP objects http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true request = Net::HTTP::Post.new(uri.request_uri, header) request.body = body.to_json # Send the request res = http.request(request) raise ClaimInvalid.new("Token is not valid.") if res.code != '204' (options.required_claims || []).each do |field| raise ClaimInvalid.new("Missing required '#{field}' claim.") if !@decoded.key?(field.to_s) end raise ClaimInvalid.new("Missing required 'iat' claim.") if options.valid_within && !@decoded["iat"] raise ClaimInvalid.new("'iat' timestamp claim is too skewed from present.") if options.valid_within && (Time.now.to_i - @decoded["iat"]).abs > options.valid_within @decoded end
request_phase()
click to toggle source
# File lib/omniauth/strategies/jwt.rb, line 24 def request_phase redirect options.auth_url end