手机电脑扫码登录原理

在进行网络和 Web 开发时,用户常常会用到手机扫码登录功能。以下是对该功能原理的详细解析。

1. 手机登录和PC登录的原理

1.1 手机登录原理
  1. 用户在手机应用上输入账号和密码,并携带设备信息一起请求服务器。
  2. 服务器接收到请求后,验证用户的账号和密码。如果账号或密码不正确,则返回错误提示;如果正确,则生成一个 token 并返回给客户端。
  3. 客户端携带 token 和设备信息请求服务器,服务器验证 token 是否有效,并检查设备信息。如果 token 有效且设备信息匹配,允许访问服务器资源。

这种方法确保了即使 token 泄露,攻击者也无法使用其他设备进行访问,因为设备信息必须匹配。

1.2 PC登录原理
  1. 用户在PC端输入账号和密码请求登录服务器。
  2. 服务器接收到请求后,验证用户的账号和密码。如果不正确,返回错误提示;如果正确,生成一个 token 并返回给客户端。
  3. PC端携带 token 请求服务器,服务器验证 token 的有效性。如果 token 有效,处理请求并返回响应。

2. 手机扫码登录的原理

手机扫码登录的实质是通过已经在 APP 上登录的用户帮助 PC 端应用向服务器申请一个 PC 端的 token。具体流程如下:

2.1 生成二维码
  1. 用户打开PC端应用,PC端向服务器申请一个二维码ID。
  2. 服务器生成一个唯一的二维码ID,并将其与二维码过期时间等信息存储在 Redis 中,然后返回二维码ID给PC端。
  3. PC端根据二维码ID生成一个用户可扫描的二维码,并监听二维码状态的变更信息。
2.2 用户扫描二维码
  1. 用户使用已登录的手机APP扫描二维码,发送一个包含手机token、设备信息和二维码ID的请求到服务器。
  2. 服务器验证手机token的有效性和设备信息。如果有效,生成一个临时的 token,并将二维码状态修改为“等待用户确认登录”状态,然后返回 token 给手机端。服务器同时通知 PC 端二维码的状态变更。

2.3 用户确认登录
  1. 用户在手机上点击确认登录后,发送一个包含临时 token 的请求到服务器。
  2. 服务器验证临时 token 的有效性。如果有效,生成一个 PC 端的 token,并将二维码状态修改为“登录成功”状态。服务器将 PC 端的 token 和二维码状态信息缓存到 Redis 中,同时推送这些信息到 PC 端。
  3. PC 端接收到二维码状态变更通知后,隐藏二维码并跳转到应用的主页。

服务器与客户端的通信方式

在手机扫码登录过程中,服务器需要实时将二维码状态变更推送给PC客户端。常见的实现方式包括:

  • WebSocket:实现双向实时通信,适合高实时性要求的场景。
  • Server-Sent Events(SSE):服务器单向推送,适合简单的实时更新。
  • 客户端轮询:定期请求服务器,适合对实时性要求不高的场景。
总结
  1. 手机扫码登录过程中,二维码状态变更需要服务器与客户端之间的实时通信。
  2. 该流程的核心是利用已登录APP的用户,帮助PC客户端获取服务器颁发的PC端 token,从而实现PC端的登录。

通过这些步骤,完整地实现了一套手机扫码登录的流程。每次二维码信息变更,服务器都会及时推送给PC客户端,确保用户体验的流畅性和安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厚源YYDS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值