View Source VRChat.Authentication (vrchat v1.11.1)

API calls for all endpoints tagged Authentication.

Link to this section Summary

Functions

Check User Exists Checks if a user by a given username, displayName or email exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the excludeUserId is used to exclude oneself, otherwise the result would always be true. It is REQUIRED to include AT LEAST username, displayName or email query parameter. Although they can be combined - in addition with excludeUserId (generally to exclude yourself) - to further fine-tune the search.

Delete User Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. VRC+ NOTE: Despite the 14-days cooldown, any VRC+ subscription will be cancelled immediately. METHOD NOTE: Despite this being a Delete action, the method type required is PUT.

Login and/or Get Current User Info This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid auth cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are not logged in then it will log you in with the Authorization header and set the auth cookie. The auth cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after Authorization: Basic {string} is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) WARNING: Session Limit: Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the auth cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed.

Logout Invalidates the login session.

Verify 2FA code Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled.

Verify 2FA email code Finishes the login sequence with an 2FA email code.

Verify Auth Token Verify whether the currently provided Auth Token is valid.

Verify 2FA code with Recovery code Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled.

Link to this section Functions

Link to this function

check_user_exists(connection, opts \\ [])

View Source
@spec check_user_exists(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, VRChat.Model.UserExists.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Check User Exists Checks if a user by a given username, displayName or email exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the excludeUserId is used to exclude oneself, otherwise the result would always be true. It is REQUIRED to include AT LEAST username, displayName or email query parameter. Although they can be combined - in addition with excludeUserId (generally to exclude yourself) - to further fine-tune the search.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :email (String.t): Filter by email.
    • :displayName (String.t): Filter by displayName.
    • :userId (String.t): Filter by UserID.
    • :excludeUserId (String.t): Exclude by UserID.

returns

Returns

  • {:ok, VRChat.Model.UserExists.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

delete_user(connection, user_id, opts \\ [])

View Source
@spec delete_user(Tesla.Env.client(), String.t(), keyword()) ::
  {:ok, VRChat.Model.CurrentUser.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Delete User Deletes the account with given ID. Normal users only have permission to delete their own account. Account deletion is 14 days from this request, and will be cancelled if you do an authenticated request with the account afterwards. VRC+ NOTE: Despite the 14-days cooldown, any VRC+ subscription will be cancelled immediately. METHOD NOTE: Despite this being a Delete action, the method type required is PUT.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • user_id (String.t): Must be a valid user ID.
  • opts (keyword): Optional parameters

returns

Returns

  • {:ok, VRChat.Model.CurrentUser.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

get_current_user(connection, opts \\ [])

View Source
@spec get_current_user(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, Tesla.Env.client(), VRChat.Model.CurrentUser.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Login and/or Get Current User Info This endpoint does the following two operations: 1) Checks if you are already logged in by looking for a valid auth cookie. If you are have a valid auth cookie then no additional auth-related actions are taken. If you are not logged in then it will log you in with the Authorization header and set the auth cookie. The auth cookie will only be sent once. 2) If logged in, this function will also return the CurrentUser object containing detailed information about the currently logged in user. The auth string after Authorization: Basic {string} is a base64-encoded string of the username and password, both individually url-encoded, and then joined with a colon. > base64(urlencode(username):urlencode(password)) WARNING: Session Limit: Each authentication with login credentials counts as a separate session, out of which you have a limited amount. Make sure to save and reuse the auth cookie if you are often restarting the program. The provided API libraries automatically save cookies during runtime, but does not persist during restart. While it can be fine to use username/password during development, expect in production to very fast run into the rate-limit and be temporarily blocked from making new sessions until older ones expire. The exact number of simultaneous sessions is unknown/undisclosed.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters

returns

Returns

  • {:ok, VRChat.Model.CurrentUser.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

logout(connection, opts \\ [])

View Source
@spec logout(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, VRChat.Model.Success.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Logout Invalidates the login session.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters

returns

Returns

  • {:ok, VRChat.Model.Success.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

verify2_fa(connection, opts \\ [])

View Source
@spec verify2_fa(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, Tesla.Env.client(), VRChat.Model.Verify2FaResult.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Verify 2FA code Finishes the login sequence with a normal 2FA-generated code for accounts with 2FA-protection enabled.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :body (TwoFactorAuthCode):

returns

Returns

  • {:ok, VRChat.Model.Verify2FaResult.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

verify2_fa_email_code(connection, opts \\ [])

View Source
@spec verify2_fa_email_code(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, VRChat.Model.Verify2FaEmailCodeResult.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Verify 2FA email code Finishes the login sequence with an 2FA email code.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :body (TwoFactorEmailCode):

returns

Returns

  • {:ok, VRChat.Model.Verify2FaEmailCodeResult.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

verify_auth_token(connection, opts \\ [])

View Source
@spec verify_auth_token(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, VRChat.Model.VerifyAuthTokenResult.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Verify Auth Token Verify whether the currently provided Auth Token is valid.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters

returns

Returns

  • {:ok, VRChat.Model.VerifyAuthTokenResult.t} on success
  • {:error, Tesla.Env.t} on failure
Link to this function

verify_recovery_code(connection, opts \\ [])

View Source
@spec verify_recovery_code(
  Tesla.Env.client(),
  keyword()
) ::
  {:ok, VRChat.Model.Verify2FaResult.t()}
  | {:ok, VRChat.Model.Error.t()}
  | {:error, Tesla.Env.t()}

Verify 2FA code with Recovery code Finishes the login sequence with an OTP (One Time Password) recovery code for accounts with 2FA-protection enabled.

parameters

Parameters

  • connection (VRChat.Connection): Connection to server
  • opts (keyword): Optional parameters
    • :body (TwoFactorAuthCode):

returns

Returns

  • {:ok, VRChat.Model.Verify2FaResult.t} on success
  • {:error, Tesla.Env.t} on failure