Sha256: 8e1acea9f98529058ddd16c00c437053a938b2f8d42730309a893cff646fb497
Contents?: true
Size: 869 Bytes
Versions: 2
Compression:
Stored size: 869 Bytes
Contents
require 'json/jwt' module OpenIDConnect class ResponseObject class IdToken < ConnectObject class InvalidToken < Exception; end attr_required :iss, :user_id, :aud, :exp, :iat attr_optional :acr, :auth_time, :nonce, :at_hash, :c_hash def initialize(attributes = {}) super (all_attributes - [:exp, :iat, :auth_time]).each do |key| self.send "#{key}=", self.send(key).try(:to_s) end end def verify!(expected = {}) exp.to_i >= Time.now.to_i && iss == expected[:issuer] && aud == expected[:client_id] && nonce == expected[:nonce] or raise InvalidToken.new('Invalid ID Token') end include JWTnizable class << self def decode(jwt_string, key) new JSON::JWT.decode(jwt_string, key) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
openid_connect-0.2.4 | lib/openid_connect/response_object/id_token.rb |
openid_connect-0.2.3 | lib/openid_connect/response_object/id_token.rb |