diff --git a/API/client-server/v1/register.md b/API/client-server/v1/register.md new file mode 100644 index 0000000..56e1143 --- /dev/null +++ b/API/client-server/v1/register.md @@ -0,0 +1,81 @@ +POST /v1/register + +--- + +Registers the user, and issues an access token for future requests. + +--- + +## Request + +|Name|Type|Description| +|-|-|-| +|identifier|string|**Required** User's desired ID| +|email|string|**Required** User's email| +|password|string|**Required**: The user's password (we need to figure out how exactly we're hashing + salting it on the client)| +|device_name|string|Name to help the user identify the device in their session list| + +```json +{ + "identifier": "radial_4740", + "email": "radial_4740@yahoo.com", + "password": "9r89mhs4czu4", + "device_name": "Laptop" +} +``` + +--- + +## Responses + +|Status|Description| +|-|-| +|200|Registration successful| +|400|The post request included poorly formated data| +|403|Gorb ID not available, email already in use, or password doesn't meet the minimum security requirements| + +--- + +### 200 + +|Name|Type|Description| +|-|-|-| +|access_token|string|**Required**: The access token that will be used for further authentication| +|user_id|string|**Required**: The full gorb ID for the account| +|expires_in|int|How many seconds until the token expires and is invalidated| + +```json +{ + "access_token": "gwLhWXD9wrqL3DwxXZ0VHUeOjr8am1yO", + "user_id": "@radial_4740:gorb.app", + "expires_in": 2592000 +} +``` + +--- + +### 403 + +|Name|Type|Description| +|-|-|-| +|gorb_id_valid|bool|Is the given gorb ID even valid?| +|gorb_id_available|bool|Is the given gorb ID available?| +|email_valid|bool|Is the given email valid?| +|email_available|bool|Is the given email available?| +|password_minimum_length|bool|Is the given password long enough?| +|password_special_characters|bool|If enforced by the server, is there enough special characters in the password?| +|password_letters|bool|If enforced by the server, is there enough letters in the password?| +|password_numbers|bool|If enforced by the server, is there enough numbers in the password?| + +```json +{ + "gorb_id_valid": true, + "gorb_id_available": true, + "email_valid": true, + "email_available": false, + "password_minimum_length": true, + "password_special_characters": false, + "password_letters": true, + "password_numbers": true, +} +``` \ No newline at end of file