1

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

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

但是这里的 OpenID 规范
https://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims

表示 emailid 是可选的,可能不会被退回。

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

4

2 回答 2

2

每个问题声明必须是唯一的。必填声明将始终存在。您可以使用 iss + sub 来唯一标识用户。

于 2018-10-10T18:12:21.937 回答
0

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

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

于 2018-10-13T11:07:37.750 回答