Auth Integration
To facilitate the authentication of users, we provide a way for users to authenticate using a one-time password (OTP) that can be generated using your API key. The OTP generated by your API key is valid for 5 minutes and is single-use. We also provide a link for the user to authenticate, which will redirect them to the app and log them in automatically.
QR Code
In order to make things even easier, we already provide a QR Code pointing to the authentication link. We highly recommend using this method alongside providing the auth link on your page as it's the best for usability.
Generate a login code
If you want to generate a login code for a user, send this POST request:
Request
Parameters
| Parameter | Location | Type | Description | Required |
|---|---|---|---|---|
| user_id | Body | string | User's id on our API | Yes * |
| user_email | Body | string | User's email | Yes* |
* You must provide either user_id or user_email.
Example
{
"user_email": "[email protected]"
}
Response
Status
| Code | Description |
|---|---|
| 200 | The login code was generated. |
| 400 | Some parameter must be malformed or missing. |
| 401 | Unauthorized. |
Example
{
"code": "000625ecbde61529269d80bfeef215fbed143a8039d2be54",
"login_url": "https://app.stift.com.br/?code=000625ecbde61529269d80bfeef215fbed143a8039d2be54",
"qr_code": "data:image/png;base64,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",
"expires_at": "2023-11-27T21:48:10.507Z"
}
We provide a QR Code encoded in base64 in the response. You can use it to show the QR Code image as follows:
<img
src="data:image/png;base64,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"
/>