有问题的部分是要使用Google SSO切换到另一封电子邮件注册的用户。
从我了解的内容中,不可能将管理API使用。因此,现在的问题是,当使用的身份验证方案是SSO时,如何实现登录电子邮件的更改?
如果用户想更改其登录电子邮件,则可以:
function (user, context, callback) {
const request = require('request');
if (!user.email_verified) {
return callback(null, user, context);
}
const userApiUrl = `https://${context.auth0Domain}/api/v2/users`;
request({
method: 'GET',
url: `${userApiUrl}?q=email%3A"${user.email}"&search_engine=v3`,
headers: { Authorization: `Bearer ${auth0.accessToken}` },
}, (error, response, body) => {
if (error) return callback(error);
const users = JSON.parse(body);
if (users.length > 0) {
user.app_metadata = user.app_metadata || {};
user.app_metadata.linkedAccounts = users.map(u => u.user_id);
auth0.users.updateAppMetadata(user.user_id, user.app_metadata);
}
return callback(null, user, context);
});
}
中更新其电子邮件
,请单独存储用户电子邮件。
提供用户可以要求更改其电子邮件的UI。📌benefit:对用户帐户的更多控制权。
eption3:处理Google中的电子邮件更改并强迫新的Auth0帐户
的新用户。
sub
用户使用新电子邮件登录时,请搜索如果他们的旧帐户和合并配置文件相同。
sub