Skip to content

Latest commit

 

History

History
401 lines (282 loc) · 19.6 KB

File metadata and controls

401 lines (282 loc) · 19.6 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

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.GetSessionListRequest;
import com.clerk.backend_api.models.operations.GetSessionListResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        GetSessionListRequest req = GetSessionListRequest.builder()
                .build();

        GetSessionListResponse res = sdk.sessions().list()
                .request(req)
                .call();

        if (res.sessionList().isPresent()) {
            System.out.println(res.sessionList().get());
        }
    }
}

Parameters

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

Response

GetSessionListResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 400, 401, 422 application/json
models/errors/SDKError 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

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.CreateSessionResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        CreateSessionResponse res = sdk.sessions().create()
                .call();

        if (res.session().isPresent()) {
            System.out.println(res.session().get());
        }
    }
}

Parameters

Parameter Type Required Description
request CreateSessionRequestBody ✔️ The request object to use for the request.

Response

CreateSessionResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 400, 401, 404, 422 application/json
models/errors/SDKError 4XX, 5XX */*

get

Retrieve the details of a session

Example Usage

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.GetSessionResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        GetSessionResponse res = sdk.sessions().get()
                .sessionId("<id>")
                .call();

        if (res.session().isPresent()) {
            System.out.println(res.session().get());
        }
    }
}

Parameters

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

Response

GetSessionResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 400, 401, 404 application/json
models/errors/SDKError 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

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.components.*;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.RefreshSessionResponse;
import java.lang.Exception;
import java.lang.Object;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        RefreshSessionResponse res = sdk.sessions().refresh()
                .sessionId("<id>")
                .call();

        if (res.sessionRefresh().isPresent()) {
            SessionRefresh unionValue = res.sessionRefresh().get();
            Object raw = unionValue.value();
            if (raw instanceof Token) {
                Token tokenValue = (Token) raw;
                // Handle token variant
            } else if (raw instanceof Cookies) {
                Cookies cookiesValue = (Cookies) raw;
                // Handle cookies variant
            } else {
                // Unknown or unsupported variant
            }
        }
    }
}

Parameters

Parameter Type Required Description
sessionId String ✔️ The ID of the session
requestBody Optional<RefreshSessionRequestBody> Refresh session parameters

Response

RefreshSessionResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 400, 401 application/json
models/errors/SDKError 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

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.RevokeSessionResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        RevokeSessionResponse res = sdk.sessions().revoke()
                .sessionId("<id>")
                .call();

        if (res.session().isPresent()) {
            System.out.println(res.session().get());
        }
    }
}

Parameters

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

Response

RevokeSessionResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 400, 401, 404 application/json
models/errors/SDKError 4XX, 5XX */*

createToken

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

Example Usage

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.CreateSessionTokenResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        CreateSessionTokenResponse res = sdk.sessions().createToken()
                .sessionId("<id>")
                .call();

        if (res.object().isPresent()) {
            System.out.println(res.object().get());
        }
    }
}

Parameters

Parameter Type Required Description
sessionId String ✔️ The ID of the session
requestBody Optional<CreateSessionTokenRequestBody> N/A

Response

CreateSessionTokenResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 401, 404 application/json
models/errors/SDKError 4XX, 5XX */*

createTokenFromTemplate

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

Example Usage

package hello.world;

import com.clerk.backend_api.Clerk;
import com.clerk.backend_api.models.errors.ClerkErrors;
import com.clerk.backend_api.models.operations.CreateSessionTokenFromTemplateResponse;
import java.lang.Exception;

public class Application {

    public static void main(String[] args) throws ClerkErrors, Exception {

        Clerk sdk = Clerk.builder()
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        CreateSessionTokenFromTemplateResponse res = sdk.sessions().createTokenFromTemplate()
                .sessionId("<id>")
                .templateName("<value>")
                .call();

        if (res.object().isPresent()) {
            System.out.println(res.object().get());
        }
    }
}

Parameters

Parameter Type Required Description
sessionId String ✔️ The ID of the session
templateName String ✔️ The name of the JWT template defined in your instance (e.g. custom_hasura).
requestBody Optional<CreateSessionTokenFromTemplateRequestBody> N/A

Response

CreateSessionTokenFromTemplateResponse

Errors

Error Type Status Code Content Type
models/errors/ClerkErrors 401, 404 application/json
models/errors/SDKError 4XX, 5XX */*