Self Service Auth¶
Authenticating a user¶
/api/v1/$FLOCK/user/auth/
- POST
authenticate a user
- DELETE
log out
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/auth/ email=jim@nasa.gov password=space
HTTP/1.1 201 CREATED
{
"bearer_token": "1abcdefg:abcedfgh",
"connected_flocks": [
"example",
"example-association",
],
"email": "jim@nasa.gov",
"first_name": "Jim",
"flock_data": {
"example": true,
"example-association": true,
},
"last_name": "Lovell",
"path_upon_activation": null,
"reset_token": null,
"reset_token_expiry": "2019-11-13T20:56:00.835000",
"session_expiry": "2020-02-25T20:19:59.770000",
"status": "active",
"username": "1abcdefg"
}
http DELETE https://api.sheepcrm.com/api/v1/$FLOCK/user/auth/ Authorization:"Bearer $API_KEY"
HTTP/1.1 200 OK
{
"status": "ok"
}
Note
TIP save the username and bearer token as an environment variablea e.g. export USERNAME=1abcdefg; export API_KEY=1abcdefg:abcedfgh
so you can use them in subsequent calls.
set your email and password as environment variables, install jq and then you can fetch a fresh token in a single command.
export APP_API_KEY=$(http https://api.sheepcrm.com/api/v1/example-association/user/auth/ email=$EMAIL password=$SHEEP_PASSWORD | jq ".bearer_token" | sed 's/"//g')
Pre-authenticate a user¶
/api/v1/$FLOCK/user/preauth/
Use this to check the existance of an account. Missing accounts will return a 404. Where appropriate an activation code will be sent to the user.
The email param is required, the email address must be a valid email address.
- quick
Optional param: setting to true is recommended
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/preauth/ email=james@example.com quick=true
HTTP/1.0 200 OK
{
"crypt": "$2b$12$hu1BFQBaqRVhLijXu/s5muiFekeYIu6r6jlNnB8NvY6JdiRB341sO",
"email": "james@example.com",
"first_name": James,
"status": "preregistered",
"username": "****"
}
Pre-registering a new user¶
/api/v1/$FLOCK/user/preregister/
This method will pre-register a new user without an account activation process. An active session will be opened but the status of ‘preregistered’ will limit access.
The email param is required, the email address must be a valid email address.
- require_activation
Optional: defaults to True, set False to prevent an activation email being sent to the new user.
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/preregister/ email=james@example.com
HTTP/1.0 200 OK
{
"bearer_token": "~~~",
"connected_flocks": [
"sheep-app",
],
"email": "james@example.com",
"first_name": null,
"flock_data": {},
"last_name": null,
"path_upon_activation": null,
"reset_token": "~~~",
"reset_token_expiry": "2020-05-12T11:53:10.379000",
"session_expiry": "2020-05-11T23:53:15.870000",
"status": "preregistered",
"username": "~~~"
}
Registering a new user¶
/api/v1/$FLOCK/user/register/
The email param is required, the email address must be a valid email address.
- terms
The user must have accepted the terms and conditions of SheepCRM.
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/register/ email=new-user@example.com terms=Y
HTTP/1.1 201 CREATED
{
"email": "new-user@example.com",
"status": "created",
"username": "f3dc4260b8"
}
Activate a user¶
/api/v1/$FLOCK/user/activate/
- token
The composite username and activatation token {username}:{reset token}
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/activate/ token=abc:123
{
"bearer_token": "***",
"connected_flocks": [
"sheep-app",
"example"
],
"email": "***",
"first_name": null,
"flock_data": {
"person_uri": "/example/person/5eb92c0280859e45bd056133/"
},
"last_name": null,
"path_upon_activation": null,
"reset_token": "***",
"reset_token_expiry": "2020-05-12T10:42:11.790000",
"session_expiry": "2020-05-11T23:19:54.850000",
"status": "active",
"username": "abc"
}
Confirm email address but don’t activate account¶
/api/v1/$FLOCK/user/activate_single/
Note
despite the name this method does NOT activate the account. The token is confirmed and destoyed but the account status is not changed
- token
The composite username and activatation token {username}:{reset token}
http POST https://api.sheepcrm.com/api/v1/$FLOCK/user/activate/ token=abc:123
{
"bearer_token": "***",
"connected_flocks": [
"sheep-app",
"example"
],
"email": "***",
"first_name": null,
"flock_data": {
"person_uri": "/example/person/5eb92c0280859e45bd056133/"
},
"last_name": null,
"path_upon_activation": null,
"reset_token": null,
"reset_token_expiry": "2020-05-12T10:42:11.790000",
"session_expiry": "2020-05-11T23:19:54.850000",
"status": "activation-required",
"username": "abc"
}