Rails: вход в Google с помощью omniauth - PullRequest
2 голосов
/ 26 августа 2011

Я использую Devise & Omniauth в своем приложении rails 3.0.7, и я уже настроил работающие логины в твиттере и фейсбуке. Я только что получил логин Служб Google, работающий через omniauth со следующими строками в config/initializers/omniauth.rb:

require 'openid/store/filesystem'
use OmniAuth::Strategies::GoogleApps, OpenID::Store::Filesystem.new('/tmp')

provider :openid, OpenID::Store::Filesystem.new('./tmp'), :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'

Но это приводит к входу в Google Apps. Как просто разрешить пользователям входить в систему со своими стандартными учетными записями Google, а не со Службами Google (для корпораций)? Это даже поддерживается Omniauth?

Ответы [ 2 ]

3 голосов
/ 15 ноября 2011

Предыдущий ответ может не работать при omniauth> 1.0.Похоже, что текущий способ сделать это - включить драгоценный камень для каждой стратегии, которую вы собираетесь использовать.Вы можете найти список стратегий здесь:

https://github.com/intridea/omniauth/wiki/List-of-Strategies

Одна проблема, с которой я столкнулся, заключается в том, что новый API Google возвращает URL-адрес обратного вызова, который слишком длинный для webrick.Это можно обойти, запустив dev в thin или mongrel.

0 голосов
/ 26 августа 2011

Я реализовал это как драгоценный камень .Если вам интересно, вы можете использовать сам гем или изучить его исходный код.Это довольно просто.

Это файл движка , который конфигурирует устройство.Для поддержки стандартных учетных записей Google в вашем коде необходимо указать параметр :domain, как указано здесь

config.omniauth :google_apps, OpenID::Store::Filesystem.new('/tmp'), :domain => 'gmail.com'
...