Sha256: d77c1f41fc61e4f7f4e04de2e650ccfab3f78f2d929c4cbfac2636699aa3f746

Contents?: true

Size: 954 Bytes

Versions: 4

Compression:

Stored size: 954 Bytes

Contents

# frozen_string_literal: true

require_relative 'auth_strategy'

module Redd
  module AuthStrategies
    # A typical code-based authentication. I genuinely recommend this for bots.
    # Only confidential web apps can be refreshed.
    class Web < AuthStrategy
      def initialize(client_id:, secret:, redirect_uri:, **kwargs)
        super(client_id: client_id, secret: secret, **kwargs)
        @redirect_uri = redirect_uri
      end

      # Authenticate with a code using the "web" flow.
      # @param code [String] the code returned by reddit
      # @return [Access]
      def authenticate(code)
        request_access('authorization_code', code: code, redirect_uri: @redirect_uri)
      end

      # Refresh the authentication and return a new refreshed access
      # @return [Access] the new access
      def refresh(access)
        request_access('refresh_token', refresh_token: must_have(access, :refresh_token))
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
redd-0.8.1 lib/redd/auth_strategies/web.rb
redd-0.8.0 lib/redd/auth_strategies/web.rb
redd-0.8.0.pre.2 lib/redd/auth_strategies/web.rb
redd-0.8.0.pre.1 lib/redd/auth_strategies/web.rb