我正在构建一个网站,该网站使用OAuth2.0和OpenId-Connect(某些第三方供应商的产品)来对用户进行身份验证。
在将用户重定向到供应商的OAuth页面之前,我并没有要求用户在我的网站中输入唯一的UserID,而是在考虑使用在授权过程完成后作为IDToken一部分收到的用户电子邮件ID ,作为我网站的用户名(唯一身份)。
但是在这里查看了OpenID规范后
https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims
它表示emailid是可选的,可能不会返回。
问题是,在启动OAUTH / OpenID-Connect流程之前,要求用户提供一个唯一的名称(我可以在我的网站上用作用户的身份)是一种标准做法吗?
谢谢
答案 0 :(得分:1)
sub 声明必须在 iss 用户中是唯一的。 Required Claims将始终存在。您可以使用iss +子项来唯一标识用户。
答案 1 :(得分:0)
要添加更多信息,每个OpenID连接提供者都需要提供一个/ userinfo端点,以使用访问令牌来获取用户信息。
这是规格
https://openid.net/specs/openid-connect-core-1_0.html#UserInfo