Каков правильный процесс создания API на основе токенов?

#javascript #node.js #oauth #oauth-2.0 #token

#javascript #node.js #oauth #oauth-2.0 #токен

Вопрос:

У меня есть интерфейс SPA с использованием React и серверная часть на Ruby on Rails.

Я использую react-google-login, чтобы получить JWT (JSON-Web-Token) для пользователя на интерфейсе. Пользователь нажимает предоставленную кнопку входа и, в случае успеха, возвращает JWT. Будет ли процесс взаимодействия с API следующим образом?

На пятом шаге мне нужны технические рекомендации или советы.

  1. [Интерфейс] Получить JWT от Google
  2. [Интерфейс] Сохранить JWT в cookie
  3. [Интерфейс] Отправляйте JWT с каждым запросом в API
  4. [API] Декодируйте JWT для получения информации о пользователе
  5. [API] Как мне проверить правильность этой пользовательской информации? Должен ли я иметь хранилище данных пользователей и сверять их информацию с этим? Просто проверьте, совпадает ли имя в токене с именем пользователя?
  6. [API] Если JWT допустим, отправьте данные из запроса

Комментарии:

1. Я отредактировал, чтобы быть немного более понятным, чтобы избежать запросов на закрытие. Я не совсем уверен, как еще я мог бы задать этот вопрос. На мой взгляд, это довольно точно.

2. Нет необходимости сохранять токен. это авантаж токенов. Запустите и забудьте. если токен проверяется, он не был подделан. В любом случае, хранить разумную информацию внутри токена — плохая идея. Все могут это видеть, только часть проверки действительно зашифрована, остальное просто закодировано в Base64encoded