Create a Send Magic Link end point
Call the /send
API with the below body parameters to ensure a magic link being sent to the user.
Call
curl --request POST
--url https://api.ezid.io/email-link/send \
--header 'Content-Type: application/json' \
--data {
email: "[email protected]",
client_id: "ezid_client_id",
client_secret: "ezid_client_secret",
base_url_email_link: "http://localhost:3000/auth",
expiry: "3600000",
push_email: "Yes",
callback_url: "http://localhost:3000",
login_hint: "[email protected]",
claims: {
test-claim: "read-only"
},
}
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));');
let url = 'https://api.ezid.io/email-link/send';
let options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: {
email:"[email protected]",
client_id:"your_client_id",
client_secret:"your_client_secret",
expiry:"3600000",
push_email:"Yes",
base_url_email_link:"http://localhost:3000/auth",
callback_url:"http://localhost:3000",
login_hint:"[email protected]",
claims:{
test-claim:"read-only"
}
}
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error('error:' + err));
Attributes | Definition |
---|---|
email* | email of end user |
client_id* | Your companies unique ID, provided by EZiD |
client_secret* | You companies unique secret, provided by EZiD |
**base_url_email_link** | The base URL embedded into the email |
expiry | An expiry for the email link, in milliseconds |
push_email | Choose 'Yes' if you would like to send emails using EZiD's in-house email service. Choose 'No' if you would like to use your own email provider e.g. SendGrid |
callback_url | The URL to redirect the user once authenticated |
login_hint | Pre-populate the email field with your users email id once they click the magic link |
claims | Add custom claims for your own API access control. These will be encoded into the access token you receive |
Responses:
{
success: true,
email_link: "http://localhost:3000/auth?code=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1dWlkIjoiM2ZhYzk3NzQtMjhlZS00ZTlkLWJlYzgtYWI0NDE4NmNjOWQzIiwiaWF0IjoxNjQ1NTE3Mjg5LCJleHAiOjE2NDU1MjA4ODl9.Txtjy905HOMjEZQlJ5QIE0O5vBh3nij65VdV7RU77qw&callback_url=unspecified"
}
{
success: false,
reason: "Invalid Client Secret"
}
Attributes | Definition |
---|---|
success | The result of the request. Will be true for a successful request |
email_link | The URL of the email link sent to the user |
You should extract the code=
from the URL return in the email_link
as it needs to be passed as auth_code
in the next API call.
Please note: To get this code parameter, in Javascript, you can use the
URLSearchParams()
orsplit()
method.