1

我有一个带有身份验证的应用程序,它已经通过设计完成并使用omniauth从各种提供商(包括vk.com、google、twitter等)登录。一切似乎都运行良好,除了我需要为每个提供者包含一个单独的 gem。

现在我决定简化身份验证并添加一些日志记录,所以我决定从设计转向巫术。但是现在我遇到了外部提供商的问题,因为 gem 只有少数(没有 vk.com 或 yahoo,我确实需要)。

我试图理解外部提供者的代码以添加我自己的代码,但这对我来说似乎有点太复杂了。有没有更简单的方法?

4

2 回答 2

3

以防万一有人在寻找类似答案时发现此问题,Sorcery 现在确实包括大多数主要登录的外部身份验证。看:

https://github.com/NoamB/sorcery/wiki/External

安装 External 模块后,在您的 Rails 应用程序中,您将拥有一个文件:config/initializers/sorcery.rb。其中将有大多数提供者的示例代码。

于 2013-08-28T23:26:55.717 回答
1

我不认为你会找到一个简单的解决方案。

我在我工作的最后一个应用程序中遇到了这个问题。我最终选择了 Sorcery 和 Omniauth。我将它们集成在用户模型和会话控制器中。Sorcery 的外部提供者的东西似乎没有保持最新。

最后,如果我不得不再做一次,我可能会从头开始进行身份验证。巫术很好,但它似乎不足以保证额外的依赖。

如果从头开始进行身份验证是您最终的方式,您可以查看以下资源:

  1. https://github.com/NoamB/sorcery/tree/master/lib
  2. https://github.com/railscasts/250-authentication-from-scratch-revised
于 2012-10-14T14:33:10.590 回答