如果使用 facebook 进行身份验证,则在 USER table 中存储空白密码

Storing blank password in USER table if authenticating using facebook

我正在设计一个应用程序,可以通过注册表单或使用 facebook 登录来接受新用户。

当用户注册时,我会创建一个用户记录并将加密的密码(哈希)存储在 USER table 中。如果用户通过 FB 注册,我仍然想创建用户记录。

但是我应该如何处理密码栏,因为我不会暴露他们的FB密码。或者我应该将 userid/login/password 与 USER table 分开并将其保存在单独的 table 中,这样 FB 用户将不会在这个新的 table 中有记录。

这两个都可以正常工作 - 您可能只想在您的用户 table 中记录该用户喜欢的身份验证提供程序,并将其用作您如何登录他们的指南。

将登录详细信息与用户帐户分开存储有很多优点,但它们无论如何都会非常紧密地关联,在许多情况下,将登录信息与用户帐户详细信息一起存储并没有什么坏处。保留单独的登录记录可以更容易地记录用户何时登录以及使用哪些凭据,当他们试图将密码更改为他们过去使用过的密码时,等等,但是你是否想要那个级别的审核您的申请完全取决于您。

用户 table 本身使用空白密码没有风险,只要您能确保没有任何人可以尝试强制系统登录 Facebook 身份验证的途径用户使用您的标准登录流程。指示用户喜欢哪种登录类型确保任何针对空白密码的登录尝试自动失败应该足以避免这个问题。