- list - List all sessions
- create - Create a new active session
- get - Retrieve a session
- refresh - Refresh a session
- get_reverification - Retrieve a reverification
- revoke - Revoke a session
- create_token - Create a session token
- create_token_from_template - Create a session token from a JWT template
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.
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| Parameter | Type | Required | Description |
|---|---|---|---|
request |
Models::Operations::GetSessionListRequest | ✔️ | The request object to use for the request. |
Crystalline::Nilable.new(Models::Operations::GetSessionListResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401, 422 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
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.
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| Parameter | Type | Required | Description |
|---|---|---|---|
request |
Models::Operations::CreateSessionRequest | ✔️ | The request object to use for the request. |
Crystalline::Nilable.new(Models::Operations::CreateSessionResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401, 404, 422 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
Retrieve the details of a session
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| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
::String | ✔️ | The ID of the session |
Crystalline::Nilable.new(Models::Operations::GetSessionResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401, 404 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
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.
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| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
::String | ✔️ | The ID of the session |
body |
Crystalline::Nilable.new(Models::Operations::RefreshSessionRequestBody) | ➖ | Refresh session parameters |
Crystalline::Nilable.new(Models::Operations::RefreshSessionResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
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).
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| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
::String | ✔️ | The ID of the session the reverification belongs to |
reverification_id |
::String | ✔️ | The ID of the reverification |
Crystalline::Nilable.new(Models::Operations::GetReverificationResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401, 404 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
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.
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| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
::String | ✔️ | The ID of the session |
Crystalline::Nilable.new(Models::Operations::RevokeSessionResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 400, 401, 404 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
Creates a session JSON Web Token (JWT) based on a session.
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| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
::String | ✔️ | The ID of the session |
body |
Crystalline::Nilable.new(Models::Operations::CreateSessionTokenRequestBody) | ➖ | N/A |
Crystalline::Nilable.new(Models::Operations::CreateSessionTokenResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 401, 404 | application/json |
| Errors::APIError | 4XX, 5XX | */* |
Creates a JSON Web Token (JWT) based on a session and a JWT Template name defined for your instance
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| 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 |
Crystalline::Nilable.new(Models::Operations::CreateSessionTokenFromTemplateResponse)
| Error Type | Status Code | Content Type |
|---|---|---|
| Models::Errors::ClerkErrors | 401, 404 | application/json |
| Errors::APIError | 4XX, 5XX | */* |