Hi,
Is this possible? I’m checking for the value of an app attribute in the profile, and if true I want to trigger the Password Rest email to them.
Thanks
Hi,
Is this possible? I’m checking for the value of an app attribute in the profile, and if true I want to trigger the Password Rest email to them.
Thanks
Hey @rot welcome to the community!
This should definitely be possible - In the following example I’m using the node management client to check for a specific flag in a user’s app_metadata and triggering a password reset email accordingly:
const { ManagementClient } = require('auth0');
exports.onExecutePostLogin = async (event, api) => {
// Initialize the Management Client
const management = new ManagementClient({
token: event.secrets.MANAGEMENT_API_TOKEN,
domain: event.secrets.DOMAIN
});
// Check the app_metadata directly
if (event.user.app_metadata && event.user.app_metadata.triggerPasswordReset) {
// Trigger password reset email
await management.sendPasswordChangeEmail({ user_id: event.user.user_id });
}
};
Thanks, so it doesn’t seem to be triggering any email. It is falling into the if statement correctly though. No errors when testing it either
Thanks for the heads up! My apologies, it looks like that example may have worked in the past but the way in which you trigger a password reset email has changed The following should be accurate and up to date:
const AuthenticationClient = require('auth0').AuthenticationClient;
exports.onExecutePostLogin = async (event, api) => {
var auth0 = new AuthenticationClient({
domain: event.secrets.AUTH0_DOMAIN,
clientId: event.secrets.CLIENT_ID,
clientSecret: event.secrets.CLIENT_SECRET
});
const data = {
email: event.user.email, // The user's email address
connection: 'Username-Password-Authentication', // The name of your database connection in Auth0 (only works for database connections)
};
auth0.database.changePassword(data)
.then(response => {
console.log('Password change email sent:', response);
})
.catch(error => {
console.error('Error sending password change email:', error);
});
}
Ok so… Yes the code works thank you.
The issue I have now is when it runs, what I actually wanted to happened was for this to run when a user tries to login and fails (because they are newly migrated and therefore do not have a password set).
However it seems the Login action only runs Post-Login. I wonder if my use case is possible or not…? Where it would run Post-Login-Fail…
Ah, gotcha! Thanks for clarifying - It sounds like the following is what you are looking for:
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.