Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
QNester opened this issue Dec 16, 2017 · 3 comments
Open

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

QNester opened this issue Dec 16, 2017 · 3 comments

Comments

@QNester
Copy link

QNester commented Dec 16, 2017

Доброго времени суток.
Использую 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
Copy link
Owner

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

@QNester
Copy link
Author

QNester commented Dec 22, 2017

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

С 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
Copy link
Owner

"Pull Request Welcome" ©

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants