createAuth

Creates an authentication object with the given options.

Example

import { createAuth } from 'thirdweb/auth';
const auth = createAuth({...});
// 1. generate a login payload for a client on the server side
const loginPayload = await auth.generatePayload({ address: '0x123...' });
// 2. send the login payload to the client
// 3. verify the login payload that the client sends back later
const verifiedPayload = await auth.verifyPayload({ payload: loginPayload, signature: '0x123...' });
// 4. generate a JWT for the client
const jwt = await auth.generateJWT({ payload: verifiedPayload });
// 5. set the JWT as a cookie or otherwise provide it to the client
// 6. authenticate the client based on the JWT on subsequent calls
const { valid, parsedJWT } = await auth.verifyJWT({ jwt });
function createAuth(options: AuthOptions): {
generateJWT: (
params: GenerateJWTParams<unknown>,
) => Promise<string>;
generatePayload: (
__namedParameters: GenerateLoginPayloadParams,
) => Promise<LoginPayload>;
verifyJWT: (params: VerifyJWTParams) => Promise<VerifyJWTResult>;
verifyPayload: (
__namedParameters: VerifyLoginPayloadParams,
) => Promise<VerifyLoginPayloadResult>;
};

Parameters

The options for creating the authentication object.

Type

let options: {
adminAccount?: Account;
client?: ThirdwebClient;
domain: string;
jwt?: {
expirationTimeSeconds?: number;
jwtId?: {
generate: () => string | Promise<string>;
validate: (jwtId: string) => boolean | Promise<boolean>;
};
};
login?: {
nonce?: {
generate: () => string | Promise<string>;
validate: (nonce: string) => boolean | Promise<boolean>;
};
payloadExpirationTimeSeconds?: number;
resources?: Array<string>;
statement?: string;
uri?: string;
version?: string;
};
};

Returns

let returnType: {
generateJWT: (
params: GenerateJWTParams<unknown>,
) => Promise<string>;
generatePayload: (
__namedParameters: GenerateLoginPayloadParams,
) => Promise<LoginPayload>;
verifyJWT: (params: VerifyJWTParams) => Promise<VerifyJWTResult>;
verifyPayload: (
__namedParameters: VerifyLoginPayloadParams,
) => Promise<VerifyLoginPayloadResult>;
};

The created authentication object.