Google OAuth 2.0 рекомендует следующий oauth
поток:
гибридный поток на стороне сервера, где пользователь авторизует ваше приложение на стороне клиента с помощью JavaScript Клиент API, и вы отправляете специальный одноразовый код авторизации на свой сервер. Ваш сервер обменивается этим одноразовым кодом для получения своего собственного доступа и перенаправления токенов sh от Google, чтобы сервер мог выполнять свои собственные вызовы API, что можно сделать, пока пользователь находится в автономном режиме.
Я пытаюсь сделать именно это, но вместо этого использую passport.js
. В обычном (полностью на стороне сервера) рабочем процессе Passport ожидает одноразовый код авторизации от Google в параметре запроса по ссылке перенаправления (например: /auth/google/redirect
). Следовательно, я ожидал бы, что та же конечная точка перенаправления будет работать, если я вызову ее с моего клиента (с кодом авторизации) вместо того, чтобы Google перенаправлял ее на.
Однако, когда я пытаюсь это сделать, я получаю следующая ошибка из паспорта:
TokenError: Bad Request
at Strategy.OAuth2Strategy.parseErrorResponse (node_modules/passport-oauth2/lib/strategy.js:358:12)
at Strategy.OAuth2Strategy._createOAuthError (node_modules/passport-oauth2/lib/strategy.js:405:16)
at node_modules/passport-oauth2/lib/strategy.js:175:45
at node_modules/oauth/lib/oauth2.js:191:18
at passBackControl (node_modules/oauth/lib/oauth2.js:132:9)
at IncomingMessage.<anonymous> (node_modules/oauth/lib/oauth2.js:157:7)
at IncomingMessage.emit (events.js:327:22)
at endReadableNT (_stream_readable.js:1201:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
Неправильно ли ожидать, что код, отправленный с моей клиентской стороны, будет работать таким образом? Что я делаю не так?