我有一个 API 和一个 Web 应用程序,使用 Rails 和 Devise gem 进行身份验证。 借助 Devise 和 Omniauth,我可以通过网站进行 Facebook 注册和 Facebook 登录。 我的 API 使用 token_authenticable 和 TokensController 进行保护,因此当您想首先与我的 API 进行交互时,您必须将您的用户名和密码传递给 TokensController,它会给您一个有效的 token ,我的问题是当用户注册 facebook,我应该将用户名和 facebook token 传递给 TokensController 来生成 token 吗?有一些标准方法可以做到这一点吗?
感谢您的评论。
最佳答案
在我看来,你可以选择任何你想要的,只要它符合你的标准:
- 这是 secret
- 您可以检索它
- 它具有最低安全性(不仅仅是“123pw”)
所以你有两个类似的选择:
- 使用 Facebook token 作为“密码”
- 使用 Devise 生成的密码
通常,您在使用 Devise 创建 Facebook 用户时会生成密码。我猜你的 User.create
调用中有类似 :password => Devise.Friendly_token[0,20]
的代码?
加密密码通常为 60 个字符,Facebook token 可以有 up to 255 characters 。所以我个人会选择 Devise 生成的密码。它的长度足够安全,并且您不需要依赖 API 来检索它。
关于ruby-on-rails - Rails + Devise + Facebook 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719552/