У меня есть маршрут для входа в мое приложение.Я использую jwt tokens
для защиты маршрутов, но у меня возникают проблемы с полным пониманием использования secret key
.
Я подумал, что мне нужно использовать секретный ключ для проверки jwt
.Всякий раз, когда пользователь входит в систему, я отправляю JWT Token
и Secret key
пользователю.JWT
хранится в локальном хранилище (хранилище телефона или приложения)
Что мне делать с секретным ключом?Должен ли я хранить данные как в локальной сети, так и в базе данных?
Маршрут входа в систему
api.post('/api/login', (req, res) => {
var secretKey;
require('crypto').randomBytes(48, function(err, buffer) {
secretKey = buffer.toString('hex');
//Create JWT and Secret Key
jwt.sign({user}, secretKey, {expiresIn: '30s'}, (err, token) => {
res.json({
access_token : token,
secret_key : secretKey
});
});
});
});
Ответ после входа в систему
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6ImV4YW1wbGV1c2VyIiwiZW1haWwiOiJleGFtcGxlQGdtYWlsLmNvbSJ9LCJpYXQiOjE1NTExMTE1ODAsImV4cCI6MTU1MTExMTYxMH0.aSTVC-HcEdrH1KBNtuD_MoLZ8DWnSiM6bCqO4EgJ5zM",
"secret_key": "2e6a98abb5b23339ad14601d3bedc1d23847498cb18daf8cfc98c2a2095ec8f47d80053f6d4e22b8f6419407ac3083dc"}