在OAUTH/OpenID连接之前请求用户名或唯一标识

在OAUTH/OpenID连接之前请求用户名或唯一标识,oauth,oauth-2.0,openid-connect,google-openidconnect,Oauth,Oauth 2.0,Openid Connect,Google Openidconnect,我正在构建一个网站,它使用OAuth2.0和OpenId Connect(某些第三方供应商的)对用户进行身份验证 在将用户重定向到供应商的OAuth页面之前,我并没有要求用户在我的网站上输入唯一的用户ID,我在考虑使用用户的电子邮件ID作为授权过程完成后作为IDToken的一部分接收,作为我网站的用户用户名(唯一标识) 但是这里的OpenID规范 表示emailid是可选的,可能不会返回 因此,问题是,在我启动OAUTH/OpenID连接过程之前,要求用户提供唯一的名称(我可以在我的网站上使用

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

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

但是这里的OpenID规范

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


因此,问题是,在我启动OAUTH/OpenID连接过程之前,要求用户提供唯一的名称(我可以在我的网站上使用该名称作为用户身份)是否是一种标准做法?

根据issuer,sub声明必须是唯一的。我们将永远在场。您可以使用iss+sub来唯一标识用户。

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

这是说明书

谢谢,但我不能将其用作用户名,以便在用户正确登录时显示。我会要求他提供一个用户ID,你可以要求他们为你的网站创建一个用户ID。它不必是独一无二的。它可以是他们的电子邮件。您不需要将此信息发送给身份验证提供商。