我正在使用NodeJs和Express技术构建我的WebAPI,WebAPI包含JWT Token库,并构建了一个名为“authRequired”的函数,该函数旨在检查令牌是否有效,下面是该函数的代码。
export const authRequired = (req, res, next) => {
// Get the auth header from the request
const authHeader = req.headers["authorization"];
// Get the Token value from the header, normaly its in a format like : Bearer <token>
const token = authHeader && authHeader.split(" ")[1];
// If the token is null, it will return a 401 satus and a message
if (token == null) return res.status(401).json({ message: "Unauthorized" });
// Verify if the token is valid and if it is, it will return the user
jwt.verify(token, process.env.TOKEN_SECRET, (err, user) => {
// Logging the error to the console
if (err) return res.status(403).json({ message: "Forbidden" });
const now = Math.floor(Date.now() / 1000); // This will return the current time in seconds
// If the token has expired, it will return a 401 status and a message
if (user.exp <= now) return res.status(401).json({ message: "Token has expired" }); // Token gonna be expired in 1 hour
// return console.log with time to expire token, return second after seccond console.log with time to expire token
console.log("######################################################-Token expires in " + (user.exp - now) + " seconds");
// If there is an error, it will return a 403 status and a message
req.user = user;
// Calling the next middleware in the chain (if there is one)
next();
});
};
我也有一个.env文件,其中除了定义主机和服务器端口之外,我还定义了TOKEN_SECRET。
TOKEN_SECRET = 123
为了测试我的API,我使用Postman,我想要的是在Postman中定义TOKEN_SECRET的值,以便能够测试所有端点,此时我必须做的是总是生成一个新的令牌,以便能够执行我想要的测试,通过这个TOKEN_SECRET,它总是可以测试端点。
1条答案
按热度按时间nuypyhwy1#
Postman 有
pre-requests scripts
和Test
机制,所以你写一些脚本来执行你的目标。对我来说,我通常写一个请求来获取令牌,并将值写入环境。我把脚本放在请求Test
选项卡中然后我把add header脚本放在集合
pre-requests scripts
中,用token执行add header,例如所以我只能在令牌过期时才能再次获取。如果你的token即将到期,你可以在集合
pre-requests scripts
中写入send请求来更新token。集合pre-requests scripts
乘坐侧具有相关片段