Отсутствует ошибка области при обратном вызове аутентификации 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.