Обратный вызов Google-oauth работает из настольных браузеров, но не из мобильного браузера - PullRequest
0 голосов
/ 06 апреля 2019

Я настроил google_oauth_client, внедрил google_authentication с помощью passport.js и развернул свое приложение на heroku.Аутентификация работает из настольных браузеров, но я получаю ошибку redirect_uri_mismatch из браузеров на мобильных устройствах.

Я исследовал эту проблему, но в Интернете не так много.Я пытался пройти проверку подлинности с нескольких настольных компьютеров и все работает.Однако это же действие выдает ошибку с любого мобильного устройства.

Я не уверен, что мне нужно показывать код здесь, но вот снимки ошибки с моего мобильного телефона и Oauth_client.Также здесь есть ссылка на мое приложение, развернутое в heroku

ошибка мобильного устройства

google_oauth_client_setup

1 Ответ

0 голосов
/ 06 апреля 2019

Для тех, кто может столкнуться с этой проблемой.Исправление на самом деле довольно просто.Мобильные браузеры не понимают эту настройку GoogleStrategy, которая была у меня ниже:

    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: '/auth/google/callback',
    proxy: true

Вам придется сделать что-то подобное.Убедитесь, что в вашем конфигурационном файле есть абсолютный путь к домену heroku, а затем просто вызовите его, как в keys.redirectURI

    clientID: keys.googleClientID,
    clientSecret: keys.googleClientSecret,
    callbackURL: keys.redirectURI + '/auth/google/callback',

Я думаю, что проблема в 'proxy.true'.Возможно, Google неправильно проксирует мобильный браузер.Как вы увидите из моего скриншота выше, он пытается перенаправить на http, а не на https.

...