Sha256: 69f3e667fb90d49ed9919dd67e139aa37f9000b7572f0f4b290e43ac0facbf68
Contents?: true
Size: 848 Bytes
Versions: 5
Compression:
Stored size: 848 Bytes
Contents
module QuizApiClient::Services class JwtService HASHING_ALGORITHM = 'HS512'.freeze attr_reader :consumer_key, :host, :shared_secret, :protocol def initialize(consumer_key: nil, consumer_request_id: nil, shared_secret:, host:, protocol: 'https') @consumer_key = consumer_key @host = host @shared_secret = shared_secret @protocol = protocol @consumer_request_id = consumer_request_id end def grant_permission(scope:, exp: nil, uuid: nil, **additional_fields) payload = { host: URI.parse("#{protocol}://#{host}").host, consumer_key: consumer_key, scope: scope, exp: exp || Time.now.utc.to_i + 60, **additional_fields } payload[:user] = { uuid: uuid } if uuid JWT.encode(payload, shared_secret, HASHING_ALGORITHM) end end end
Version data entries
5 entries across 5 versions & 1 rubygems