Skip to main content

Sign In

Authenticate an existing user with email and password credentials. Method: auth.signInauth.Authorization

Request Message

message SignIn {
  string email = 1;
  string password = 2;
}

Parameters

email
string
required
User’s email address
password
string
required
User’s password

Response

Returns an Authorization message containing:
token
string
required
Authentication token for subsequent requests
user
User
required
Complete user profile information including:
  • id (fixed64): User’s unique snowflake ID
  • name (string): Display name
  • username (string, optional): Unique username
  • photo (ChatPhoto, optional): Profile photo
  • bot (bool): Whether this is a bot account
  • status (UserStatus, optional): Online/idle status
  • icon (fixed64, optional): Custom emoji icon ID
  • color (uint32, optional): User color
session_id
fixed64
required
Unique session identifier (snowflake)

Example Usage

const signInRequest = {
  email: "[email protected]",
  password: "securePassword123"
};

const authorization = await client.auth.signIn(signInRequest);
console.log("Token:", authorization.token);
console.log("User ID:", authorization.user.id);
console.log("Session:", authorization.session_id);

Sign Up

Register a new user account with flexible authentication options. Method: auth.signUpauth.Authorization

Request Message

message SignUp {
  optional string email = 1;
  optional string password = 2;
  string name = 3;
}

Parameters

email
string
User’s email address (optional for passwordless registration)
password
string
User’s password (optional for passwordless registration)
name
string
required
User’s display name
Both email and password are optional, allowing for passwordless account creation. However, providing credentials enables traditional email/password authentication.

Response

Returns the same Authorization message as Sign In (see above).

Example Usage

const signUpRequest = {
  email: "[email protected]",
  password: "securePassword123",
  name: "Alice Johnson"
};

const authorization = await client.auth.signUp(signUpRequest);

Token Authorization

Authenticate using an existing token, useful for reconnection or multi-device scenarios. Method: auth.authorizeauth.Authorization

Request Message

message Authorize {
  string token = 5;
}

Parameters

token
string
required
Previously issued authentication token

Response

Returns an Authorization message with refreshed session information.

Example Usage

// Stored token from previous authentication
const storedToken = localStorage.getItem('auth_token');

const authorizeRequest = {
  token: storedToken
};

const authorization = await client.auth.authorize(authorizeRequest);
// User is now authenticated with existing credentials
Store authentication tokens securely. Never expose tokens in client-side code or logs.

Email Verification

Verify a user’s email address using a verification code. Method: auth.verifyEmail()

Request Message

message VerifyEmail {
  string email = 1;
  string code = 2;
}
email
string
required
Email address to verify
code
string
required
Verification code sent to the email

Resend Verification Email

Request a new email verification code. Method: auth.resendEmailVerification()

Request Message

message ResendEmailVerification {
  optional string email = 1;
}
email
string
Email address (optional if already authenticated)

Password Reset

Reset a user’s password using a two-step verification process. Method: auth.resetPassword()

Request Message

message ResetPassword {
  message ResetPasswordConfirm {
    string code = 1;
    string new_password = 2;
  }

  string email = 1;
  optional ResetPasswordConfirm confirm = 2;
}

Parameters

email
string
required
Email address of the account to reset
confirm
ResetPasswordConfirm
Confirmation details (provided in second step)

Two-Step Process

  1. Request Reset: Send email address only
    await client.auth.resetPassword({ email: "[email protected]" });
    
  2. Confirm Reset: Provide verification code and new password
    await client.auth.resetPassword({
      email: "[email protected]",
      confirm: {
        code: "123456",
        new_password: "newSecurePassword456"
      }
    });
    

Build docs developers (and LLMs) love