可以在 oauth2 中验证电子邮件地址吗?

Posted

技术标签:

【中文标题】可以在 oauth2 中验证电子邮件地址吗?【英文标题】:Can email address not verified in oauth2? 【发布时间】:2015-03-11 16:51:29 【问题描述】:

我知道不是所有的提供商都会给出用户的电子邮件地址,但是假设他们使用 oauth2 并且电子邮件字段不为空,我可以说必须验证电子邮件地址吗?

【问题讨论】:

【参考方案1】:

使用普通的 OAuth 2.0(加上此场景所需的提供者特定的扩展)这是不可能的。使用 OpenID Connect,它是提供登录语义的 OAuth 2.0 的标准化扩展,这可以通过作为所谓 ID 令牌的一部分提供的标准化 email_verified 声明来实现,并且可以在身份验证请求中明确请求某些内容。

【讨论】:

【参考方案2】:

当然有可能。首先,您将有一个中间表单,该表单将从任何提供商重定向到,并填写字段,包括电子邮件(如果可用),如果不可用,则用户填写并提交表单将是空白的。您必须构建您的应用程序,以便如果电子邮件地址字段可用且不为空,并且在该字段中填充有效的电子邮件并允许用户提交表单,那么您将发送电子邮件验证电子邮件并执行任何其他步骤当用户创建帐户时需要。

我会将它分成事件,并在创建用户帐户时触发事件。然后附加一些监听器来监听用户帐户创建的事件。

然后您可以创建新的事件侦听器并根据需要将它们附加到事件。

Laracasts https://laracasts.com/series/commands-and-domain-events 上提供了一些关于命令和领域事件的精彩视频

【讨论】:

以上是关于可以在 oauth2 中验证电子邮件地址吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot OAuth2 针对 Google 进行身份验证时如何将 google 用户电子邮件发送到白名单用户

电子邮件地址验证。这有效吗?

我可以在不通过 SMTP 服务器验证的情况下发送电子邮件吗?

OAuth2:使用电子邮件而不是用户名进行身份验证

如何使用 php 验证电子邮件地址? [复制]

通过电子邮件验证电子邮件地址后自动登录