Authentication
The Authentication API provides secure methods for authenticating users with the Gamerbase API. It supports multiple authenticate protocols including OAuth 2.0, ZKLogin, SIWE and Password.
Session Management
Refresh Session
Request Body
Name
Type
Description
{
"sessionToken": "string"
}OAuth
const decodeSharedSecret = (secret: string): Uint8Array => {
if (!secret || secret.length % 2 !== 0) return Uint8Array.of();
const buffer = new Uint8Array(secret.length / 2);
for (let n = 0; n < secret.length / 2; n++) {
const chunk = secret.substring(n * 2, n * 2 + 2);
buffer[n] = Number.parseInt(chunk, 16);
}
return buffer;
};
const nonce = randomBytes(8).toString("hex")
const key = decodeSharedSecret(process.env.SHARED_SECRET);
const rawToken = new EncryptJWT({
_nonce: nonce,
subjectId,
handle,
idToken,
accessToken,
refreshToken,
referrerHandle,
})
.setProtectedHeader({ alg: "dir", enc: "A256GCM" })
.setIssuedAt(now)
.setExpirationTime(now + 300);
const token = await rawToken.encrypt(key);
Google
Request Body
Name
Type
Description
Discord
Request Body
Name
Type
Description
Twitter
Request Body
Name
Type
Description
ZKLogin (OAuth)
Google
Request Body
Name
Type
Description
Twitch
Request Body
Name
Type
Description
SIWE
Request Body
Name
Type
Description
Password
Register
Request Body
Name
Type
Description
Login
Request Body
Name
Type
Description
Last updated