gpt4 book ai didi

node.js - 如何将 jwt token 从一个路由传递到另一个路由

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:34 25 4
gpt4 key购买 nike

我的 Node js 应用程序中有两条路由:usersrecords

users 路由中,我在 /login 路径上获取 token :

users.post('/login', function(req, res) {
const email = req.body.email;
const password = req.body.password;
var token = '';
connection.query(`SELECT * FROM ${process.env.USER_TBL} WHERE EMAIL = ?`, [email], function(err, results, fields) {
if (err) {
res.status(200).json({'message' : err, 'token' : token})
}
if (results.length > 0) {
bcrypt.compare(password, results[0].PASSWORD).then(function(match) {
if (match == true) {
token = jwt.sign(JSON.parse(JSON.stringify(results[0])), process.env.SECRET_KEY, {
expiresIn: 5000
})
res.status(200).json({'message' : 'User verified', 'token' : token})
} else {
res.status(200).json({'message' : 'Email or Password does not match', 'token' : token})
}
})
} else {
res.status(200).json({'message' : 'Email does not exists', 'token' : token})
}
})
connection.end(err => {
if(err) console.log(err);
})
})

在我的第二条路线 records 中,我正在向路径 /addNewRecord 发出请求,

records.post('/addNewRecord', function(req, res) {
//need the token to authenticate the request
});

这里我需要从 /login 路由生成的 token 发送到 hrader 并验证我的请求。

但我知道如何将 token 值从 users 路由传递到 records 路由。

最佳答案

当您登录时,您会将 token 传输给用户,捕获该 token 并将其放入客户端的本地存储中。然后它可用于下次调用服务器。

localstorage.setItem('token', token)

当发出下一个服务器请求时,您将使用 header 中存储的 token 。

$.ajax({
url: "URL",
method: "POST",
headers: {
'authorization': localstorage.getItem('token'), //YOUR TOKEN GOES HERE
'anotherHeader': 'headerValue2'
}
});

然后您可以从下一个请求中捕获 token 以验证其是否有效

records.post('/addNewRecord', function(req, res) {
let token = req.headers['authorization']
});

关于node.js - 如何将 jwt token 从一个路由传递到另一个路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51655782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com