后端设计题---说说扫码登录的实现?

核心就是二维码,然后二维码可以 由前端或者后端生成,然后这块需要在二维码中

  • 加入一个临时的token(一般会存在redis中,key是token,value是二维码状态(未扫描,已扫描,已确认)),标记此次扫码会话

  • 这个token也会设置一个有效期,过期了二维码就失效了

比如 在用户打开前端登录页面时,前端通过请求服务器生成一个唯一的二维码。

  1. 前端轮询(长连接,websocket)请求服务器,获取二维码状态

  1. 用户移动端扫描二维码后,这块就是解析出二维码中的token,并携带token令牌,向后端发出扫描请求

  2. 后端redis就更新token状态为已扫描,同时把用户基本信息 解析出来,返回给移动端,问是否要确认登录

  3. 移动端确认登录后,再次向后端发起请求,后端就更新token状态为已确认,把用户信息传给电脑端,完成登录操作

  4. 临时的token就可以从redis中删除了

你可能感兴趣的:(java,扫码登录)