Skip to content

Latest commit

 

History

History
351 lines (238 loc) · 20.9 KB

File metadata and controls

351 lines (238 loc) · 20.9 KB

Sessions

Overview

Available Operations

list

Returns a list of sessions matching the provided criteria. The sessions are returned sorted by creation date, with the newest sessions appearing first.

Note: This endpoint does not return all sessions that have ever existed. Old and inactive sessions are periodically cleaned up and will not be included in the results.

Deprecation Notice (2024-01-01): All parameters were initially considered optional, however moving forward at least one of client_id or user_id parameters should be provided.

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)

req = Models::Operations::GetSessionListRequest.new(
  client_id: 'client_123',
  user_id: 'user_456',
  status: Models::Operations::GetSessionListStatus::ACTIVE
)
res = s.sessions.list(request: req)

unless res.session_list.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::GetSessionListRequest ✔️ The request object to use for the request.

Response

Crystalline::Nilable.new(Models::Operations::GetSessionListResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401, 422 application/json
Errors::APIError 4XX, 5XX */*

create

Create a new active session for the provided user ID.

This operation is intended only for use in testing, and is not available for production instances. If you are looking to generate a user session from the backend, we recommend using the Sign-in Tokens resource instead.

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)

req = nil
res = s.sessions.create(request: req)

unless res.session.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::CreateSessionRequest ✔️ The request object to use for the request.

Response

Crystalline::Nilable.new(Models::Operations::CreateSessionResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401, 404, 422 application/json
Errors::APIError 4XX, 5XX */*

get

Retrieve the details of a session

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.get(session_id: 'sess_1234567890abcdef')

unless res.session.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session

Response

Crystalline::Nilable.new(Models::Operations::GetSessionResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401, 404 application/json
Errors::APIError 4XX, 5XX */*

refresh

Refreshes a session by creating a new session token. A 401 is returned when there are validation errors, which signals the SDKs to fall back to the handshake flow.

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.refresh(session_id: '<id>')

unless res.session_refresh.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session
body Crystalline::Nilable.new(Models::Operations::RefreshSessionRequestBody) ➖ Refresh session parameters

Response

Crystalline::Nilable.new(Models::Operations::RefreshSessionResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401 application/json
Errors::APIError 4XX, 5XX */*

get_reverification

Retrieve a reverification scoped to a session. A resource server can use this to validate a reverification id it received from its client: confirm it is real, scoped to the expected session, completed, and how fresh each factor is. Single-use / replay detection is the caller's responsibility (the id is stable, so the caller dedups consumed ids).

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.get_reverification(session_id: '<id>', reverification_id: '<id>')

unless res.reverification.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session the reverification belongs to
reverification_id ::String ✔️ The ID of the reverification

Response

Crystalline::Nilable.new(Models::Operations::GetReverificationResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401, 404 application/json
Errors::APIError 4XX, 5XX */*

revoke

Sets the status of a session as "revoked", which is an unauthenticated state. In multi-session mode, a revoked session will still be returned along with its client object, however the user will need to sign in again.

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.revoke(session_id: 'sess_1234567890abcdef')

unless res.session.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session

Response

Crystalline::Nilable.new(Models::Operations::RevokeSessionResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 400, 401, 404 application/json
Errors::APIError 4XX, 5XX */*

create_token

Creates a session JSON Web Token (JWT) based on a session.

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.create_token(session_id: '<id>')

unless res.object.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session
body Crystalline::Nilable.new(Models::Operations::CreateSessionTokenRequestBody) ➖ N/A

Response

Crystalline::Nilable.new(Models::Operations::CreateSessionTokenResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 401, 404 application/json
Errors::APIError 4XX, 5XX */*

create_token_from_template

Creates a JSON Web Token (JWT) based on a session and a JWT Template name defined for your instance

Example Usage

require 'clerk_sdk_ruby'

Models = ::Clerk::Models
s = ::Clerk::OpenAPIClient.new(
  bearer_auth: '<YOUR_BEARER_TOKEN_HERE>'
)
res = s.sessions.create_token_from_template(session_id: 'ses_123abcd4567', template_name: 'custom_hasura')

unless res.object.nil?
  # handle response
end

Parameters

Parameter Type Required Description
session_id ::String ✔️ The ID of the session
template_name ::String ✔️ The name of the JWT template defined in your instance (e.g. custom_hasura).
body Crystalline::Nilable.new(Models::Operations::CreateSessionTokenFromTemplateRequestBody) ➖ N/A

Response

Crystalline::Nilable.new(Models::Operations::CreateSessionTokenFromTemplateResponse)

Errors

Error Type Status Code Content Type
Models::Errors::ClerkErrors 401, 404 application/json
Errors::APIError 4XX, 5XX */*