Rails: вход в Google с помощью omniauth

Я использую Devise & Omniauth в своем приложении rails 3.0.7 и уже настроил работающие входы в Twitter и Facebook. Я только что получил вход в Google Apps, работающий через 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 Apps (для корпораций)? Это даже поддерживается Omniauth?


person Ankit Soni    schedule 26.08.2011    source источник


Ответы (2)


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

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

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

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

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

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

person genkilabs    schedule 14.11.2011