Node.js обработка JWT - PullRequest
       29

Node.js обработка JWT

0 голосов
/ 15 апреля 2020

Я начал изучать Node.js в последние несколько недель, и я закончил курс. К сожалению, курс не охватил все, поэтому я и пришел сюда.

Итак, курс охватывает обработку JWT на стороне сервера, но ничего не упомянул на стороне клиента js потому что они использовали Почтальон. Я все понимаю, ожидаю, что как я могу хранить эти токены на клиенте и как отправлять их с запросами. Я читаю такие вещи, как клиентская сторона js хранит ее в поварской ie или в местном хранилище. Хорошо, если бы я хранил его в хранилище, то мне нужно было бы отправлять его с каждым запросом, не так ли? Если так, то это не будет слишком эффективным, по моему мнению. Что делать, если клиент вводит URL-адрес типа www.example.com/somepage и требует аутентификации? В этом примере ему нужно будет установить его вручную. Есть ли способ автоматически установить заголовок после входа в систему?

Каждый урок или топи c, которые я нашел об этом, делают это с почтальоном.

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

Хорошего дня!

Ответы [ 4 ]

0 голосов
/ 15 апреля 2020

Что если клиент вводит URL-адрес, такой как www.example.com/somepage, и требует аутентификации?

Для этой цели вы можете просто написать промежуточное программное обеспечение Express, чтобы справиться с этим.

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

app.get ('/ some-protected-route', auth, (req, res) => {

// сделать что-то

})

Ответ SA здесь: Как настроить промежуточное ПО аутентификации в Express. js

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

0 голосов
/ 15 апреля 2020

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

Пожалуйста, прочитайте это https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests

0 голосов
/ 15 апреля 2020

Вы можете сохранить его в localStorage через localStorage.set("keyName", keyValue);. Получить его можно через localStorage.get("keyName");

. Отправляя его на сервер, вы можете отправить его как параметр в запросе PUT или установить его в качестве пользовательского заголовка. Это зависит от библиотек, которые вы используете.

0 голосов
/ 15 апреля 2020

1) Вы должны использовать cook ie или localStorage для хранения токена JWT.

2) передать этот токен JWT в заголовки через Authorizartion так:

Authorization: Bearer {JWT_TOKEN}

3) положить в заголовки всех ваших запросов get, post, put, delete

...