我的应用程序有一个登录路径。我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
});
});
});
Run Code Online (Sandbox Code Playgroud)
});
登录后回复
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoxLCJ1c2VybmFtZSI6ImV4YW1wbGV1c2VyIiwiZW1haWwiOiJleGFtcGxlQGdtYWlsLmNvbSJ9LCJpYXQiOjE1NTExMTE1ODAsImV4cCI6MTU1MTExMTYxMH0.aSTVC-HcEdrH1KBNtuD_MoLZ8DWnSiM6bCqO4EgJ5zM",
"secret_key": "2e6a98abb5b23339ad14601d3bedc1d23847498cb18daf8cfc98c2a2095ec8f47d80053f6d4e22b8f6419407ac3083dc"}
Run Code Online (Sandbox Code Playgroud)