Отсутствует ошибка области при обратном вызове аутентификации Google с помощью Node.js/Passport

Эта ошибка возникает только на Heroku (производство), а не на локальном. Я пробовал оба:

passport.authenticate('google', { scope: 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/analytics.readonly' })

и

passport.authenticate('google', { scope: ['profile', 'email'] })

Является ли область видимости массивом или строкой, разделенной пробелом.

Когда я перехожу к ссылке проверки подлинности Google, область действия IS в URL. Нет никакой разницы в том, что было создано в моем живом приложении.

Но я все еще получаю:

Error 400

Error: invalid_request

Missing required parameter: scope

Ответы

Ответ 1

Я полагаю, вы используете Passport Google OAuth, а не только модуль Passport Google (OpenId)?

Если вы используете паспорт OAuth, для аутентификации в Google требуется дополнительный параметр области.

Передача в виде строки, вы должны передать 'openid' в качестве 1-го слова, например: Например, если вы хотите, чтобы доступ к файлам для каждого пользователя Google Диска,

openid profile email https://www.googleapis.com/auth/drive.file

Источник (ы):

https://developers.google.com/identity/protocols/OpenIDConnect#scope-param https://developers.google.com/+/api/oauth#login-scopes

Ответ 2

Для сообщения об ошибке

Error 400
Error: invalid_request
Missing required parameter: scope

Вам нужно добавить области в свою форму

<input type="hidden" name="scope" value="https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo#email https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/tasks https://www-opensocial.googleusercontent.com/api/people https://www.googleapis.com/auth/plus.login" />

Обратитесь spring социальный логин с приложением linkin, facebook, twitter и google.