上传二维码登录设计思路

一、要求

  1. 二维码图片、账号、密码均通过其他渠道下发;
  2. 用户上传二维码,同时输入用户名和密码,输入的用户必须为二维码内的用户;
  3. 要有图片验证码,退出登录,同一用户登录后自动挤掉旧的会话;

二、思路

  1. 上传扫描成功后,返回二维码内的账号hash,登录过程带上这个hash,以保证输入账号与二维码的一致。
  2. 使用JWT方案,其中jwt中不存放任何真实用户信息,仅包含代表此次登录的loginKey,是一个随机串。
  3. 涉及三个关键缓存:
  • CaptchaCache:缓存验证码信息,key为一个随机串,value为生成的验证码值,登录时带上key和用户输入的验证码。

  • TokenCache:缓存jwt中的负载信息,key为用户主键,value为jwt中的loginKey;用户登录时先根据主键从缓存中得到旧loginKey,根据旧loginKey去UserCache删除旧用户信息,达到挤掉的效果;挤掉后存储本次登录的新pkId -> loginKey及loginKey -> user;退出逻辑与挤掉操作类似。

  • UserCache:缓存本次登录的用户信息,本次登录会话的用户基本信息、角色、权限等数据都从这里获取;登录有效性也依靠此缓存的存在性来判定。

猜你喜欢

转载自www.cnblogs.com/JaxYoun/p/12607268.html