什么是 redis-token?
redis-token 是一个基于 Redis 服务的 Token 管理器,它提供了一套方便的 API,供前后端应用使用 Token 认证方式进行身份验证和授权。
为什么要使用 redis-token?
redis-token 优点:
- 高效、快速,不会因为数据量过大而变慢,可以在不同服务器之间轻松共享;
- 简单、易用,只需要调用 redis-token 的几个 API 即可实现 Token 的生成和验证;
- 安全,Token 可以设置过期时间,一旦过期即使拿到了也无法继续使用。
安装 redis-token
请先确保已经安装了 Redis 服务,然后在项目根目录中执行以下命令:
npm install redis-token --save
使用 redis-token
1. 初始化 redis-token
需要调用 init() API 进行初始化,建议在应用启动时执行一次即可。
-- -------------------- ---- ------- ----- ---------- - ----------------------- ----------------- ----------- ------------------------- ------------ --------- ------------------ ------ -- ----- ------------- -- -- ------------------- --------- -- ----- --- ------------------ ------------- --------------- - -- ----- --------- - ---
2. 生成 Token
调用 generate() API 即可生成 Token,其中第一个参数是用户 ID,第二个参数是相关 Payload 数据(可以是任意 JSON 对象),返回值为生成的 Token。
const token = redisToken.generate("123", {name: "Tom", role: "admin"}); console.log(token); // eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsIm5hbWUiOiJUb20iLCJyb2xlIjoiYWRtaW4ifQ.Yc2Y0yfxyqMV0UwVV6bxhrZ51p8Z0E5iXj5AV5zf1Qc
3. 验证 Token
调用 verify() API 即可验证 Token 是否合法和是否过期,第一个参数为需要验证的 Token,第二个参数为接收到的 Payload 数据(可以是任意 JSON 对象),如果 Token 合法并且未过期,返回值为 true,否则返回 false。
const isValid = redisToken.verify("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsIm5hbWUiOiJUb20iLCJyb2xlIjoiYWRtaW4ifQ.Yc2Y0yfxyqMV0UwVV6bxhrZ51p8Z0E5iXj5AV5zf1Qc", {name: "Tom", role: "admin"}); console.log(isValid); // true
4. 更新 Token
调用 update() API 可以更新 Token 的有效期,第一个参数为需要更新的 Token,第二个参数为新的 Payload 数据(可以是任意 JSON 对象),返回值为更新成功还是失败。
const isUpdated = redisToken.update("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsIm5hbWUiOiJUb20iLCJyb2xlIjoiYWRtaW4ifQ.Yc2Y0yfxyqMV0UwVV6bxhrZ51p8Z0E5iXj5AV5zf1Qc", {name: "Tom", role: "admin"}); console.log(isUpdated); // true
5. 销毁 Token
调用 destroy() API 可以销毁 Token,第一个参数为需要销毁的 Token,返回值为销毁成功还是失败。
const isDestroyed = redisToken.destroy("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsIm5hbWUiOiJUb20iLCJyb2xlIjoiYWRtaW4ifQ.Yc2Y0yfxyqMV0UwVV6bxhrZ51p8Z0E5iXj5AV5zf1Qc"); console.log(isDestroyed); // true
示例代码
-- -------------------- ---- ------- ----- ---------- - ----------------------- ----------------- ----------- ------------------------- ------------ --------- --- ----- ----- - -------------------------- ------ ------ ----- ---------- ------------------- ----- ------- - ------------------------ ------ ------ ----- ---------- --------------------- ----- --------- - ------------------------ ------ ------ ----- --------- ----------------------- ----- ----------- - -------------------------- -------------------------
总结
通过本文的介绍和示例,大家对于 npm 包 redis-token 的使用应该已经有了一个基本的了解,redis-token 可以方便应用程序实现身份验证和授权功能,如果您有相关的开发需求,不妨试试 redis-token。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055eac81e8991b448dc20a