在OAUTH / OpenID-Connect之前询问用户名或唯一身份

时间:2018-10-10 18:05:57

标签: oauth oauth-2.0 openid-connect google-openidconnect

我正在构建一个网站,该网站使用OAuth2.0和OpenId-Connect(某些第三方供应商的产品)来对用户进行身份验证。

在将用户重定向到供应商的OAuth页面之前,我并没有要求用户在我的网站中输入唯一的UserID,而是在考虑使用在授权过程完成后作为IDToken一部分收到的用户电子邮件ID ,作为我网站的用户名(唯一身份)。

但是在这里查看了OpenID规范后
https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims

它表示emailid是可选的,可能不会返回。

问题是,在启动OAUTH / OpenID-Connect流程之前,要求用户提供一个唯一的名称(我可以在我的网站上用作用户的身份)是一种标准做法吗?

谢谢

2 个答案:

答案 0 :(得分:1)

sub 声明必须在 iss 用户中是唯一的。 Required Claims将始终存在。您可以使用iss +子项来唯一标识用户。

答案 1 :(得分:0)

要添加更多信息,每个OpenID连接提供者都需要提供一个/ userinfo端点,以使用访问令牌来获取用户信息。

这是规格
https://openid.net/specs/openid-connect-core-1_0.html#UserInfo