mamantoha / omniauth-vkontakte

Vkontakte OAuth2 Strategy for OmniAuth
MIT License
141 stars 73 forks source link

Пустой request.env['omniauth.auth'] #68

Open QNester opened 6 years ago

QNester commented 6 years ago

Доброго времени суток. Использую rails 5.1.4 без devise. Режим config.api_only не включен.

В конфиге:

provider :vkontakte, ENV['OAUTH_APP_ID'], ENV['OAUTH_VK_SECRET'],
    scope: 'email, photos',
    image_size: 'original',
    redirect_url: 'http://localhost:3000/api/v1/oauth/callback',
    display: 'page',
    lang: 'ru',
    https: 1

Дергаю get /auth/vkontakte - происходит корректный запрос к vk - корректный редирект на redirect_url, но в экшене коллбека request.env['omniauth.auth'] == nil. Через https://github.com/mkdynamic/omniauth-facebook все работает корректно.

Не подскажете, в чем может быть проблема?

UPD расставил брекпоинты дебаггера здесь: https://github.com/omniauth/omniauth/blob/master/lib/omniauth/strategy.rb, ни в одну не попало. То есть вообще не отрабатывает

mamantoha commented 6 years ago

Здравствуйте. Только что проверил, все работает локально. Возможно у вас проблема с redirect_url. Не уверен что оно вообще будет работать с localhost:3000. Проверьте настройки приложения вконтакте.

QNester commented 6 years ago

Большое спасибо за ответ!

С localhost:3000 все работает нормально, главное правильно настроить приложения на стороне vk.

Я разобрался в чем была причина такого поведения. Дело в том, что если вы используете кастомный redirect_url (то есть путь к вашему экшну для коллбеков не /oauth/vkontakte/callback), то необходимо дополнительно в настройках провайдера указать callback_path или callback_url. В итоге получается так:

provider :vkontakte, ENV['OAUTH_VK_CLIENT'], ENV['OAUTH_VK_SECRET'],
   scope: 'email, photos',
   image_size: 'original',
   display: 'page',
   lang: 'ru',
   https: 1,
   redirect_url: 'http://localhost:3000/api/v1/auth/callback',
   callback_path: '/api/v1/auth/callback'

UPD: Быть может указать это в Readme? А то пришлось долго расставлять дебаг-поинты в самих исходниках гема omniauth

mamantoha commented 6 years ago

"Pull Request Welcome" ©