Devise + Omniauth仅限谷歌登录

3 ruby login devise ruby-on-rails-3

我正在开发一个与谷歌API互动的网络应用程序.

由于使用该应用程序的唯一方法是通过谷歌帐户,我想只允许通过谷歌帐户登录.

我想我会使用"omniauth-google-oauth2"策略,因为OAuth2是访问谷歌API的首选方式.为了处理登录本身,我想使用Devise,因为我不喜欢从头开始编写它(因此重新发明轮子并且不得不关心与登录系统相关的所有安全问题).

我的问题是,我可以禁用非谷歌帐户的Devise登录吗?

Dan*_*ans 5

在您的用户模型中,您将看到如下所示的行:

  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :omniauthable
Run Code Online (Sandbox Code Playgroud)

你想要做的只是删除你不想要的策略.可以在设计存储库的页面上找到每个内容的解释.

实际上,您希望保留:omniauthable和删除:database_authenticatable提供基于密码的身份验证.

  • 如果要创建新模型,请务必将其从迁移中删除,无需创建额外的列. (2认同)