什么是鉴权

鉴权也叫身份认证,指验证用户是否有系统的访问权限。就很像我们经常乘坐动车的票据(对应的标识,一定的时间范围)。

token 流程

  1. 用户登录:用户提供凭据(如用户名和密码)进行登录。
  2. 服务器验证凭据:服务器验证提供的凭据,如果通过验证,则生成一个包含用户唯一标识的 token。
  3. 将 token 与用户关联起来:服务器将生成的 token 与用户在数据库中的唯一标识关联起来。
  4. 发送 token 到客户端:服务器将生成的 token 发送给客户端(通常是通过设置在响应的 header 或 body 中)。
  5. 客户端持有 token:客户端接收并保存 token。
  6. 访问受保护资源:在后续的请求中,客户端发送包含 token 的请求到服务器。
  7. 校验 token:服务器接收到包含 token 的请求后,对 token 进行校验,验证 token 的有效性和真实性。
  8. 校验 token:服务器接收到包含 token 的请求后,对 token 进行校验,验证 token 的有效性和真实性。
const jwt = require('jsonwebtoken');
const secretKey = 'your_secret_key';

// 假设从数据库中查询到了用户的唯一标识
const userId = 123;

// 生成 token,将用户唯一标识包含在其中
const token = jwt.sign({ userId: userId }, secretKey);

// 将生成的 token 发送给客户端(例如,包含在响应的 header 或 body 中)
const jwt = require('jsonwebtoken');
const secretKey = 'your_secret_key';

// 假设客户端将 token 包含在请求的 header 中
const token = // 从请求 header 中获取 token

// 校验 token,获取其中的用户唯一标识
const decoded = jwt.verify(token, secretKey);
const userId = decoded.userId;

// 使用 userId 去查询数据库或其他存储,获取特定用户的数据
// 这里使用伪代码模拟从数据库中获取用户数据
const userData = db.query('SELECT * FROM users WHERE id = ?', [userId]);

// 返回用户数据给客户端
res.json(userData);




在实际应用中,步骤 3 和 7 是最关键的。在步骤 3 中,服务器需要将 token 与用户在数据库中的唯一标识关联起来,以便后续可以根据 token 来获取对应用户的数据。在步骤 7 中,服务器需要对接收到的 token 进行验证,以确保 token 是有效和真实的,并使用其中的用户唯一标识来获取用户数据。
这个工作流程通常需要结合使用 JSON Web Tokens(JWT)、数据库查询和服务器端逻辑来实现。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值