什么是 tdn-auth?
tdn-auth 是一个基于 Token 的身份验证 npm 包,适用于前端和后端使用。该包可以帮助开发者轻松实现用户身份认证和授权。
安装 tdn-auth
在终端中输入以下命令:
npm install tdn-auth
如何使用 tdn-auth?
- 引入 tdn-auth
在代码中引入 tdn-auth:
const tdnAuth = require('tdn-auth');
- 设置 Token 密钥
tdnAuth.setTokenSecret('your-secret-key')
- 生成 Token
const token = tdnAuth.generateToken({ userId: 123456, username: 'john', createdAt: '2022-01-01T00:00:00.000Z' });
生成的 Token 即可用于传输和存储用户身份信息。
- 解析 Token
const decoded = tdnAuth.verifyToken(token);
解析后的 decoded 对象包含了之前生成 Token 时传入的用户身份信息。使用时只需判断该对象是否存在即可完成身份认证。
- 添加 Token 到请求头
为使后端可以使用解析后的身份信息进行授权,需要将 Token 添加到请求头中。在前端 send 请求时,可添加以下代码:
const config = { headers: { Authorization: `Bearer ${token}` } }; axios.get('/users', config);
- 后端验证 Token
后端可使用 Node.js 框架自带的 express-jwt 中间件验证 Token。引入中间件后,添加以下代码:
const jwt = require('express-jwt'); app.use(jwt({ secret: 'your-secret-key', algorithms: ['HS256'] }));
- 自定义错误处理
使用 td-auth 进行身份认证和授权时,若 Token 无效或已过期,需要进行错误处理。可使用以下代码自定义错误处理:
app.use(function (err, req, res, next) { if (err.name === 'UnauthorizedError') { res.status(401).send('Invalid token'); } else { next(); } });
示例代码
-- -------------------- ---- ------- ----- ------- - -------------------- ------------------------------------------ ----- ----- - ----------------------- ------- ------- --------- ------- ---------- -------------------------- --- ----- ------- - --------------------------- ----- ------ - - -------- - -------------- ------- --------- - -- ------------------- -------- ----- --- - ----------------------- ------------- ------- ------------------ ----------- --------- ---- ---------------- ----- ---- ---- ----- - -- --------- --- -------------------- - ----------------------------- -------- - ---- - ------- - ---
总结
通过 tdn-auth,我们可以轻松地实现 Token 的生成、解析和验证,从而实现用户身份的认证和授权。同时,该 npm 包也提供了自定义错误处理功能,方便开发者进行错误处理。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cc181e8991b448e63c2