Как делать вход через одноклассники?

Gemfile
gem 'rails', '4.2.5'
gem 'devise', '3.5.1'
gem 'omniauth-odnoklassniki'

Зарегистрировал приложение, пришло письмо:
0b70fedb89ed4d8683d06ce5ff11eb92.pngconfig/initializers/devise.rb
...
  config.omniauth :odnoklassniki,
            Rails.application.secrets.odnoklassniki_app_id,
            Rails.application.secrets.odnoklassniki_app_secret
...


secrets.yml
odnoklassniki_app_id: '1xxxxxxxxx8' пробовал еще CxxxxxxxxA
  odnoklassniki_app_secret: BxxxxxxxxxxxxxxxxxB


Жму на сайте Зайти. Переходит на страницу Одноклассников. Просит ввести пароль, а далее:
Invalid credentials, если odnoklassniki_app_id: '1xxxxxxxxx8'
и
ca5595db140b472cabab212cb99cc686.png
если odnoklassniki_app_id: CxxxxxxxxA
Хм, через девайс в общем не заходит. Уже настроен ВК, Твиттер, а Одноклассники не хотят

В документации:
use OmniAuth::Builder do
  provider :odnoklassniki, ENV['APP_ID'], ENV['APP_SECRET_KEY'], :public_key => ENV['APP_PUBLIC_KEY'],
    :scope => 'VALUABLE_ACCESS'
end

Т.е. вроде как требуется указать три параметра, а в девайсе только 2. Как быть?
  • Вопрос задан
  • 1439 просмотров
Решения вопроса 1
@sunnmas Автор вопроса
Ruby
/config/initializers/odnoklassniki.rb:
# Fix Odnoklassniki OAuth gem via
# https://github.com/incubus/omniauth-odnoklassniki/issues/10

OmniAuth::Strategies::Odnoklassniki.class_eval do
  def callback_url
    options.redirect_url || (full_host + script_name + callback_path)
  end
end


/config/initializers/devise.rb:
config.omniauth :odnoklassniki,
            Rails.application.secrets.odnoklassniki_app_id,
            Rails.application.secrets.odnoklassniki_app_secret,
            :public_key => Rails.application.secrets.odnoklassniki_app_public


secrets.yml:
odnoklassniki_app_id: '1xxxxxxx8'
  odnoklassniki_app_public: CxxxxxxxxxxxxxA
  odnoklassniki_app_secret: BxxxxxxxxxxxxxxxxxxxxB
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы