JWT-API使用JWT进行Node.js身份验证
想要在 Node.js 中使用 JWT(JSON Web Token)来做身份验证,jwt-Api是一个不错的选择。它你快速在 API 中集成 JWT,尤其是当你用TypeScript
开发时,代码会更加清晰,类型安全性也提高了。JWT 主要包括三部分:头部、负载和签名。你可以用jsonwebtoken
这个库来轻松生成和验证 JWT。比如,你可以用以下代码签发一个 JWT:
import jwt from 'jsonwebtoken';
const secret = 'your-secret-key';
function generateToken(payload: any) {
return jwt.sign(payload, secret, { expiresIn: '1h' });
}
对于验证 JWT,verify
方法同样简单,适用于 API 求时的身份验证。
结合TypeScript
使用时,你可以提前定义接口来确保 payload 的数据结构一致性,减少运行时错误。这种方式适合做登录鉴权,比如当用户登录成功后,系统会返回一个 JWT,存储在LocalStorage
或者Cookie
中。每次求时,客户端会把这个 token 放在Authorization
头中发送到服务器,确保每次求都是合法的。
举个例子,你可以为需要验证的路由加个中间件来 JWT 验证:
router.get('/protected', async (req, res, next) => {
const authHeader = req.headers['authorization'];
if (!authHeader) {
return res.status(401).json({ message: 'Unauthorized' });
}
try {
const token = authHeader.split(' ')[1];
const decoded = await verifyToken(token);
req.user = decoded;
next();
} catch (err) {
res.status(401).json({ message: 'Invalid token' });
}
});
这就能轻松创建一个安全的 API 啦!如果你想深入了解,可以看看jwt-Api-master
这个项目,里面有一些实践代码,你更好地理解如何实现 JWT API,怎么路由、中间件、错误等等。
jwt-Api-master.zip
预估大小:29个文件
jwt-Api-master
文件夹
package.json
718B
package-lock.json
132KB
dist
文件夹
models
文件夹
User.js
2KB
User.js.map
844B
index.js
563B
app.js.map
446B
database.js
531B
46.46KB
文件大小:
评论区