Sha256: 2ae94b7d73ea28a26e795e5b4f4d986ab91f881bb686c8c8acaab26275196f10

Contents?: true

Size: 1.43 KB

Versions: 9

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

require_relative 'request_helper'

module Stytch
  class OAuth
    include Stytch::RequestHelper

    PATH = '/v1/oauth'

    def initialize(connection)
      @connection = connection
    end

    def authenticate(
      token:,
      session_token: nil,
      session_jwt: nil,
      session_duration_minutes: nil,
      session_custom_claims: nil,
      code_verifier: nil
    )
      request = {
        token: token
      }
      request[:session_token] = session_token unless session_token.nil?
      request[:session_jwt] = session_jwt unless session_jwt.nil?
      request[:session_duration_minutes] = session_duration_minutes unless session_duration_minutes.nil?
      request[:session_custom_claims] = session_custom_claims unless session_custom_claims.nil?
      request[:code_verifier] = code_verifier unless code_verifier.nil?

      post_request("#{PATH}/authenticate", request)
    end

    # Send a /v1/oauth/attach request.
    #
    # Exactly one of user_id, session_token, or session_jwt is required.
    def attach(
      provider:,
      user_id: nil,
      session_token: nil,
      session_jwt: nil
    )
      request = {
        provider: provider
      }
      request[:user_id] = user_id unless user_id.nil?
      request[:session_token] = session_token unless session_token.nil?
      request[:session_jwt] = session_jwt unless session_jwt.nil?

      post_request("#{PATH}/attach", request)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
stytch-5.0.2 lib/stytch/oauth.rb
stytch-5.0.1 lib/stytch/oauth.rb
stytch-5.0.0 lib/stytch/oauth.rb
stytch-4.5.1 lib/stytch/oauth.rb
stytch-4.5.0 lib/stytch/oauth.rb
stytch-4.4.0 lib/stytch/oauth.rb
stytch-4.3.1 lib/stytch/oauth.rb
stytch-4.3.0 lib/stytch/oauth.rb
stytch-4.2.0 lib/stytch/oauth.rb