Как генерировать, хранить и использовать токены доступа в Node.js / Express? - PullRequest
0 голосов
/ 31 января 2019

Я новичок в бэкэнд-разработке с использованием Nodejs / Express и создаю API, в котором зарегистрированные пользователи смогут отправлять запросы на него с помощью уникального токена доступа.

Я ужеиспользуя JWT (JSON Web Tokens) для аутентификации пользователя, и после прочтения множества учебных пособий по JWT я не нашел никакого объяснения, можно ли использовать JWT в качестве токенов доступа (вместо токенов аутентификации) или есть другое решение длясгенерируйте токен такого типа.

Итак, в основном у меня есть несколько вопросов о том, как сгенерировать и использовать токен доступа:

  1. Можно ли использовать JWT в качестве токенов доступа?Это безопасно?Есть ли другое решение, более часто используемое?
  2. Как хранить токен доступа?Могу ли я просто сохранить модель пользователя в базе данных, чтобы при получении запроса я просто сравнивал, равны ли они?
  3. При выполнении запроса мне следует использовать заголовок HTTP Authorization для передачи моего токена или лучшепередать его в URL (аналогично Google Maps API: https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap)?

1 Ответ

0 голосов
/ 31 января 2019

Так что это довольно широкий вопрос, так как он действительно зависит от вашего приложения и безопасности, которую вы хотите иметь.

Если вы уже используете токены JWT для пользователей входа в систему и убедитесь, что они аутентифицированы, это здорово.

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

Вы можете установить ключ с истекшим сроком действия внутри JWT, поэтому он будет ограничен в течение 1 часа, 2 часов, неделю, что угодно.

Если вы хотите, чтобы пользователи могли войти в систему только один раз, вам нужно будет немного глубже понять, как вы управляете своими токенами.

Что касается того, где следуетПользователь передает маркер JWT в заголовке или в параметрах GET.Так что с точки зрения безопасности все одинаково доступно.Но когда вы помещаете jwt в URL-адрес, существуют ограничения на длину URL-адреса (я думаю, 1024 символа)

Если у вас есть конкретные вопросы о токенах доступа, вы точно не знаете, что вы собираетесь с ними делать.

Но если вы просто предоставляете другие сервисы для выполнения действий на вашем API, лучше хранить эти access_tokens локально, поэтому, если вы хотите аннулировать ключ, вы можете легко это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...