Полный поток аутентификации Oauth2 с клиентом Vue.js и сервером Express.js с использованием Passport.js - PullRequest
0 голосов
/ 26 июня 2019

У меня проблема с пониманием того, как использовать маркер доступа к каналу, полученный из потока аутентификации OAuth2.

В моем случае клиент - Vue.js, сервер - Express.js, а средний уровень аутентификации - Passport.js.

Конфигурация потока паспорта и аутентификации является стандартной:

  • Это стратегия Паспорта OAuth2 (в моем случае Асана)
  • На сервере есть маршрутизация / auth / asana, которая вызывает passport.authenticate.
  • На сервере есть маршрутизация / auth / asana / cb для обратного вызова от Asana.
  • И есть успешный URL, указывающий на клиента.

Шаг за шагом, вот что я делаю:

  1. На клиенте / домашнем пользователе нажимает «Аутентификация», и я делаю перенаправление на сервер / auth / asana.
  2. server / auth / asana с помощью Passport.js перенаправляет на Asana, чтобы пользователь мог аутентифицироваться.
  3. сервер / auth / asana / cb получает аутентифицированного пользователя от Asana.
  4. сервер / auth / asana / cb перенаправляет пользователя обратно на клиент / дом.
  5. Из клиента / дома я хочу начать использовать API для извлечения данных.

Вот 3 вопроса:

  1. На сервере (Express.js, где используется Passport.js) как получить токен доступа на предъявителя?
  2. На клиенте (Vue.js), где должен храниться токен доступа носителя, чтобы его можно было использовать в запросах к внешнему API (в данном случае Asana)?
  3. Как передать токен переноса с сервера (Express.js) клиенту (Vue.js)?

Обратите внимание, что я прочитал множество статей по этому вопросу, и шаги с 1 по 4 в порядке, код для аутентификации и т. Д. Работает хорошо. Но, похоже, я здесь упускаю что-то фундаментальное, поскольку ни одна из статей не объясняет, как на самом деле использовать токен доступа на предъявителя после аутентификации.

...