JSFiddle - React, Tailwind, and code Playground
JavaScript
exports.onExecutePostLogin = async (event, api) => {
const ManagementClient = require('auth0').ManagementClient;
const DOMAIN = event.secrets.domain;
const CLIENT_ID = event.secrets.clientId;
const CLIENT_SECRET = event.secrets.clientSecret;
const management = new ManagementClient({
domain: DOMAIN,
clientId: CLIENT_ID,
clientSecret: CLIENT_SECRET
});
let currentAccount = event.user;
if (currentAccount.identities.length == 1 && currentAccount.identities[0].provider == 'google-oauth2') {
let accountsWithSameEmail = await management.getUsersByEmail(currentAccount.email);
let targetAccount = accountsWithSameEmail.find(u => u.user_id != currentAccount.user_id);
if (targetAccount) {
targetAccount.identities = await management.linkUsers(targetAccount.user_id, {
provider: currentAccount.identities[0].provider,
user_id: currentAccount.user_id,
});
event.user = targetAccount;
}
}
}