Login or Create User by Magic Link
Create an email Magic Link to the provided email for login verification. If no user account exists, a new user will be created and Magic Link sent.
HTTP Request
POST /v1/auth/magic_links/email/login_or_create
Returns
A successful response returns an object with user_id
, user_created
indicating if the user has been newly created, and email_id
properties.
Body
-
Required
Email that uniquely identifies the user.Minimum length is
1
. -
login_redirect_url string
The base url we will use to construct the final login magic link and send to the user via email if this is a login (existing user). If the
redirect_url
ishttps://streambird.io/authenticate
, final url user sees in email will behttps://streambird.io/authenticate?token=autogeneratedmagictoken
. We will redirect to your app in this url and your app should handle and parse thetoken
parameter and allow the user log in. If no url is sent in, we will use the default redirect url set in the Console and if no default redirect url is available, an error will be returned. -
registration_redirect_url string
The base url we will use to construct the final login magic link and send to the user via email if this is a registration (new user). If the
redirect_url
ishttps://streambird.io/authenticate
, final url user sees in email will behttps://streambird.io/authenticate?token=autogeneratedmagictoken
. We will redirect to your app in this url and your app should handle and parse thetoken
parameter and register the user. If no url is sent in, we will use the default redirect url set in the Console and if no default redirect url is available, an error will be returned. -
login_expires_in number
Expiration time of the magic link in minutes for login (when an existing user is found) Must be between 5 to 10080 minutes (7 days), defaults to 60 minutes.
-
registration_expires_in number
Expiration time of the magic link in minutes for registration (when a new user is created). Must be between 5 to 10080 minutes (7 days), defaults to 60 minutes.
-
requires_verification boolean
Determines if verification for the authentication method (email, phone_number) is required before marking the user as active.
-
device_fingerprint object
Device fingerprinting metadata for fraud detection during verification step. This is useful to ensure that the user who originated the request matches the user that verifies the token. Verification requirements can be enabled in the
Verify Token
step by matching fields in thedevice_fingerprint
such as IP, User Agent or the combination of them (more fraud detection features coming soon!)
curl \
-X POST https://api.streambird.io/v1/auth/magic_links/email/login_or_create \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"email":"sandbox@streambird.io","expires_in":60,"login_redirect_url":"http://localhost:8081/authenticate","registration_redirect_url":"http://localhost:8081/authenticate"}'
{
"email": "sandbox@streambird.io",
"expires_in": 60,
"login_redirect_url": "http://localhost:8081/authenticate",
"registration_redirect_url": "http://localhost:8081/authenticate"
}
{
"user_id": "user_24wFP9pDa9YiMJLun94iKykoZs2",
"status": "active",
"user_created": false,
"updated_at": 1630989225,
"created_at": 1630989225,
"email_id": "email_24oXBL3PufzHkH1Jzyjc2EXYeo7"
}