Sha256: dd2f1bf657351867b561902a24487a926ec188133120a4e4be003afbbcf8cc95

Contents?: true

Size: 722 Bytes

Versions: 36

Compression:

Stored size: 722 Bytes

Contents

module QuizApiClient::Services
  class JwtService
    extend Forwardable

    HASHING_ALGORITHM = 'HS512'.freeze

    attr_reader :config
    def_delegators :config, :host, :protocol, :consumer_key

    def initialize(config)
      @config = config
    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
      }

      if uuid
        payload[:user] ||= {}
        payload[:user][:uuid] = uuid
      end

      JWT.encode(payload, config.shared_secret, HASHING_ALGORITHM)
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
quiz_api_client-4.19.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.18.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.17.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.17.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.16.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.16.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.15.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.14.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.14.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.13.4 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.13.3 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.13.2 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.13.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.13.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.12.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.11.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.11.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.10.0 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.9.1 lib/quiz_api_client/services/jwt_service.rb
quiz_api_client-4.9.0 lib/quiz_api_client/services/jwt_service.rb