Sha256: 04ce93faae8d83e715379ee4f5c0c130e1d17d19b53f5a7c0a9a650d7e99c4ad

Contents?: true

Size: 1001 Bytes

Versions: 10

Compression:

Stored size: 1001 Bytes

Contents

require 'bootic_client/strategies/oauth2_strategy'

module BooticClient
  module Strategies

    class Authorized < Oauth2Strategy
      protected

      def validate!
        raise ArgumentError, "options MUST include access_token" unless options[:access_token]
      end

      def get_token
        # The JWT grant must have an expiration date, in seconds since the epoch.
        # For most cases a few seconds should be enough.
        exp = Time.now.utc.to_i + 30

        # Use the "assertion" flow to exchange the JWT grant for an access token
        access_token = auth.assertion.get_token(
          hmac_secret: config.client_secret,
          iss: config.client_id,
          prn: client.options[:access_token],
          aud: 'api',
          exp: exp,
          scope: ''
        )

        access_token.token
      end

      def auth
        @auth ||= OAuth2::Client.new('', '', site: config.auth_host)
      end
    end

  end

  strategies[:authorized] = Strategies::Authorized
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
bootic_client-0.0.21 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.20 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.19 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.18 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.17 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.16 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.15 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.14 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.13 lib/bootic_client/strategies/authorized.rb
bootic_client-0.0.12 lib/bootic_client/strategies/authorized.rb