Module: Tiktok::Open::Sdk::OpenApi::Auth::User

Extended by:
User
Includes:
Helpers::AuthHelper, Helpers::ResponseHelper
Included in:
User
Defined in:
lib/tiktok/open/sdk/open_api/auth/user.rb

Overview

Provides user authentication helper methods for the TikTok Open SDK.

Instance Method Summary collapse

Methods included from Helpers::ResponseHelper

#render_response

Methods included from Helpers::StringUtilsHelper

#parse_json

Instance Method Details

#authorization_uri(params = {}) ⇒ URI

Constructs the TikTok OAuth authorization URI.

Parameters:

  • params (Hash) (defaults to: {})

    Optional query parameters to override defaults.

    • :scope [String] (optional) Comma-separated scopes to request.
    • :redirect_uri [String] (optional) Redirect URI for the OAuth callback.
    • :state [String] (optional) State parameter for CSRF protection.

Returns:

  • (URI)

    The constructed authorization URI.



24
25
26
27
28
29
30
31
# File 'lib/tiktok/open/sdk/open_api/auth/user.rb', line 24

def authorization_uri(params = {})
  allowed_params = params.slice(:scope, :redirect_uri, :state)
  uri            = URI.parse(Tiktok::Open::Sdk.config.user_auth.auth_url)
  query_params   = authorization_uri_default_params.merge(allowed_params)
  uri.query      = URI.encode_www_form(query_params)

  uri
end

#fetch_access_token(code:, redirect_uri: Tiktok::Open::Sdk.config.user_auth.redirect_uri) ⇒ Hash

Exchanges an authorization code for an access token.

Parameters:

  • code (String)

    The authorization code received from TikTok.

  • redirect_uri (String) (defaults to: Tiktok::Open::Sdk.config.user_auth.redirect_uri)

    The redirect URI used in the authorization request. Defaults to the configured redirect URI.

Returns:

  • (Hash)

    The parsed response, including:

    • :success [Boolean] Whether the request was successful.
    • :code [Integer] HTTP status code.
    • :response [Hash] Parsed response body or raw string if parsing fails.


42
43
44
45
46
47
48
49
50
51
52
# File 'lib/tiktok/open/sdk/open_api/auth/user.rb', line 42

def fetch_access_token(code:, redirect_uri: Tiktok::Open::Sdk.config.user_auth.redirect_uri)
  render_response Tiktok::Open::Sdk::HttpClient.post(
    Tiktok::Open::Sdk.config.user_auth.token_url,
    headers: headers,
    body:    credentials.merge(
      code:         code,
      grant_type:   'authorization_code',
      redirect_uri: redirect_uri
    )
  )
end

#refresh_access_token(refresh_token:) ⇒ Hash

Exchanges a refresh token for a new access token.

Parameters:

  • refresh_token (String)

    The refresh token issued by TikTok.

Returns:

  • (Hash)

    The parsed response, including:

    • :success [Boolean] Whether the request was successful.
    • :code [Integer] HTTP status code.
    • :response [Hash] Parsed response body or raw string if parsing fails.


61
62
63
64
65
66
67
68
69
70
# File 'lib/tiktok/open/sdk/open_api/auth/user.rb', line 61

def refresh_access_token(refresh_token:)
  render_response Tiktok::Open::Sdk::HttpClient.post(
    Tiktok::Open::Sdk.config.user_auth.token_url,
    headers: headers,
    body:    credentials.merge(
      grant_type:    'refresh_token',
      refresh_token: refresh_token
    )
  )
end

#revoke_access_token(token:) ⇒ Hash

Revokes an access token using the provided refresh token.

Parameters:

  • token (String)

    The refresh token to revoke.

Returns:

  • (Hash)

    The parsed response, including:

    • :success [Boolean] Whether the request was successful.
    • :code [Integer] HTTP status code.
    • :response [Hash] Parsed response body or raw string if parsing fails.


79
80
81
82
83
84
85
# File 'lib/tiktok/open/sdk/open_api/auth/user.rb', line 79

def revoke_access_token(token:)
  render_response Tiktok::Open::Sdk::HttpClient.post(
    Tiktok::Open::Sdk.config.user_auth.revoke_token_url,
    headers: headers,
    body:    credentials.merge(token: token)
  )
end