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

时间:2015-01-13 16:41:59

标签: oauth oauth-2.0 google-oauth twitter-oauth facebook-oauth

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

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

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

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

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

Laracasts https://laracasts.com/series/commands-and-domain-events

提供了一些关于命令和域事件的好视频