如何支持更改登录电子邮件与Auth0

问题描述 投票:0回答:1
Https://auth0.com/docs/api/management/v2/users/patch-users-by-id,,然后触发发送验证电子邮件。

有问题的部分是要使用Google SSO切换到另一封电子邮件注册的用户。

从我了解的内容中,不可能将管理API使用。因此,现在的问题是,当使用的身份验证方案是SSO时,如何实现登录电子邮件的更改?

eption1:启用帐户链接

如果用户想更改其登录电子邮件,则可以:

auth0
1个回答
0
投票
符合其旧电子邮件(Google SSO)。

链接他们的新电子邮件帐户(Google带有新电子邮件或其他提供商)。

  1. 步骤:

    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); }); }

  2. eption2:允许用户在自定义DB

    中更新其电子邮件

  3. 如果您使用
custom数据库连接

,请单独存储用户电子邮件。

提供用户可以要求更改其电子邮件的UI。

当他们通过Google登录时,请检查他们的Google电子邮件是否已更改。

在数据库中填写电子邮件,然后将其映射回Auth0。
  • 📌benefit:对用户帐户的更多控制权。

    eption3:处理Google中的电子邮件更改并强迫新的Auth0帐户
  • 如果用户在google
  • 中更改了电子邮件,则可以将其视为auth0

    的新用户。

  • 要避免这种情况,请在数据库中存储一个唯一的标识符(类似于

    sub

    )。

用户使用新电子邮件登录时,请搜索如果他们的旧帐户和合并配置文件相同。

sub

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.