一个(自认为)较为完整的登录注册功能的实现

最近一段时间需要和同学们采用前后端分离的方式完成一个小型的在线书城的项目。我本人在这次项目中主要负责登录注册模块的开发,因为面临着找工作的压力,所以自己在原本登录注册功能的基础上进行了一些功能上的补充以及技术方面的扩充。将初步的设计思路写下来,给自己的后续开发工作定一个目标也希望可以为对这些问题感兴趣的同学提供帮助。

整体的布局使用思维导图的方式呈现:

图1

接下来将分功能逐一进行简要的说明:

Shiro框架部分的需求细化:

图2

第三方接口:

图3

登录功能的实现可以通过基本的账号密码进行登录;也可以在使用第三方接口的情况下进行快捷登录(尽量模拟上线软件的功能实现过程,做到尽可能的专业化:qq快捷登录方式;微博快捷登录方式;微信快捷登录方式)还可以自己实现扫码登录(扫码登录的过程在今后的开发过程中进行说明)。

Shiro框架的实现部分:

图4

依托shiro框架实现了部分功能:session管理;权限验证;密码加密(加盐);退出系统。

分功能实现:

session管理部分的要点:

图5

Session中存储当前登录用户的信息,redis可以缓存session数据,例如用于异地登录时权限数据。

权限管理部分:

RBAC模型

图6(来源 https://blog.csdn.net/yangwenxue_admin/article/details/73936803 )

密码加密:

初步计划使用SHA 以及MD5 算法进行加密处理(数据进过前端加密后在进入后台进行二次加密)

 

 图7

密码加盐:

密码加盐的过程简单实现为在密码段后在加上一段字符进行拼接后进行加密。

退出系统时要清除当前登录用户的session数据。

注销功能:

 

 图8

注销功能是出于用户角度考虑新增的功能项。

在用户决定注销系统账号时 开始作用。参考一些软件的模式,让用户选择一些删除用户账户的理由以便改进系统。

退出系统:

 

图9

主要在于用户选定自动登录功能的情况下session的处理方式。

我个人觉得在redis里存储的角色信息出于下一次登录的效率问题不应该删除。

 以上内容就是我所能想到的有关登录注册功能实现的一些要点,因为还是在校学生,并没有接触过真正的商业项目,所以在某些地方还有所欠缺,希望大家斧正。

原文地址:https://www.cnblogs.com/volatile0509/p/9352412.html