cg:auth.precheck - Authentication Precheck Packet

cg:auth.precheck

This packet is used to pre-check a login attempt.

Internal Name cg:auth.precheck
Direction Bidirectional
Since Version v0.1.0
Valid States auth only

Purpose

Using this packet, the client can check if the account name actually exists and fetch an encryption key to be used when sending the password.

Structure

Note that all examples shown here contain placeholder data and will have different content in actual packets.

This is the data sent by the client to the server:

{
   "username": "notna",
}

username is just the user name entered by the user on the prompt displayed by the client.

The server responds with a packet like this:

{
   "username": "notna",
   "valid": true,
   "exists": true,

   "key": "...",
}

username is the same name as was sent by the client, but normalized according to the server. Usually this involves lower-casing the user name.

valid is a boolean flag that determines whether or not the username is valid on this server. This does not mean that it exists, just that it could exist.

exists is a boolean flag showing whether the account exists or not. This can be used by the client to ask the user if they want to create a new account.

key is a binary key to be used to encrypt the password before sending it to the server. It is specific to the connection, user name and will expire after some time. If the key is the empty string, no encryption should be applied.

See also

See the cg:auth packet for further information on password exchange.