1

我将 Google 和 Facebook OAuth2.0 添加到我的网站。我让它工作了,所以它用名字、姓氏和电子邮件预先填充了我的注册表(必须手动输入密码)。现在我想启用用户无需输入密码即可登录/注册。正如我所提到的,我可以从 OAuth 毫无问题地获取电子邮件地址,但我不知道使用什么作为密码,因为我的数据库中不能有一个空的密码字段(然后你可以输入没有密码的用户电子邮件,你可以登录)。

在我的数据库中,我正在检查电子邮件和密码字段(简单登录)。

那么我如何使用 OAuth 注册我的用户(在密码字段中输入什么),以便稍后我可以通过单击 OAuth 图标登录他们?

是否有任何特定于用户且不公开的密钥?

4

1 回答 1

0

我想你还没有理解 OAuth 的真正含义。

OAuth 创建和授权层并将客户端的角色与资源所有者的角色分开。客户端应用程序仅访问用户提供的授权后由资源所有者控制的那些资源。

出于安全目的,资源所有者访问受保护资源的凭据,客户端获取访问令牌——表示特定范围、生命周期和其他访问属性的字符串。

访问令牌由授权服务器在用户批准后颁发给第三方客户端。客户端使用访问令牌访问由资源所有者服务器托管的受保护资源。

根据 RFC 6749:

The authorization server MUST NOT issue client passwords or other
client credentials to native application or user-agent-based
application clients for the purpose of client authentication.  The
authorization server MAY issue a client password or other credentials
for a specific installation of a native application client on a
specific device.

因此不需要密码

于 2013-03-11T12:15:14.490 回答