系统登录功能的设计
  xJPI1cnGkzK7 2023年11月05日 38 0
  1. 系统登录功能的设计 系统登录模块的主要功能是对用户在进入系统时进行身份验证,常用的登录方式有账号密码登录,手机验证码登录,第三方账号登录,指纹登录,刷卡登录等。在数据库中,常常把用户的密码等重要信息进行加密来提高系统的安全性。 1.1 账号密码 用户输入账号和密码,点击登录按钮把密码发送给服务端进行验证(@RequestBody接收值),验证成功则进入系统,否则提示用户账号或密码错误并返回登录页面。主要业务流程图如下所示: 1.png

1.2 手机验证码 手机验证码登录,用户输入11位手机号后,点击获取验证码,后台使用Random()函数随机生成一个6位数验证码,并将该手机作为Key,验证码code作为value存入session,并使用session.setMaxInactiveInterval方法设置有效期为60s,然后将生成的验证码根据短信模板发送给短信提供商,提供商在把验证码发送给该手机号,在60s后将自动调用session.removeAttribute方法销毁当前验证码。主要业务流程图如下所示: 2.png

1.3 第三方账号 下载并配置好第三方平台的SDK,调用第三方平台获取用户信息接口,根据返回的用户openId判断该用户在本系统内是否存在,存在就直接登录进入系统,不存在就注册该用户。主要业务流程图如下所示: 3.png

1.4 指纹 用户在指纹登录验证首先会拉起指纹认证(FingerprintManager),认证成功会把指纹指纹库内进行匹配,匹配成功把指纹进行解密(FingerPrintHelper),根据解密内容向服务端发起请求,服务端使用RequestBody接收请求信息并将信息到数据库进行验证,验证通过则登录,否则提示对应消息。主要业务流程图如下所示: 4.png

1.5 密码加密 用户在登录过程中,服务端根据账号把接收的密码进行md5单向加密后再和数据库中的密码进行比对,匹配成功则正常进入系统,否则向用户显示提示密码不匹配的消息并返回登录页面。 1.6 自动登录

  1. 用户登录网站时,选择“一周内免登录”。
  2. 用户登录成功后,服务端返回token和用户id,这些信息需要在浏览器端保存Cookie信息,但是直接报错Cookie并不是很安全,可以通过时间戳和随机数合并通过MD5加密处理形成Token,同时服务器端数据库中也需要记录同样的信息。 String token = Utils.MD5(System.currentTimeMillis()+Math.Rand(0,9999999));
  3. 当用户下次访问时,后台读取Cookie,获取用户id和Token,去数据库对比,如果都存在,且在有效期内,则通过用户id直接获取用户信息并保存session,直接进入系统。 1.7 密码找回 用户点击忘记密码按钮,进入账户验证页面,在此页面输入需要找回密码所绑定的手机号,输入接收到的验证码,判断验证码是否正确,正确则跳转到重置密码页面重置密码,重置成功跳回登录页面进行登录,否则就提示验证码错误信息。主要业务流程图如下所示: 7.png
  1. 系统权限管理验证功能的设计 系统权限管理目前普遍使用的RBAC(Rloe-Based Access Contol)权限模型,该模型是基于角色的访问控制,就是将用户通过角色与权限进行关联。其实就是构建了“用户-角色-权限”的授权模型。 具体做法是,先给系统配置好各个角色及对应权限,然后创建/注册用户时,给用户配置对应的角色。

2.1 角色权限 在登录一个系统中根据用户不同身份显示对应的功能模块,也是对应用系统权限进行增删改查操作。一般情况下,普通用户只能看到与自己相关的操作,而管理员用户能管理普通用户以及对普通用户开放的功能。 2.2 权限获取 用户的权限来自与角色的权限,但在不同场景、不同需求时,用户的权限会变化,比如在一个考试系统中,普通用户只能报名、查看考试时间和自己信息的权限,管理员则可以管理普通用户的信息,也可以对普通用户授予不同的权限,管理报名的情况等。 2.3 权限验证 在用户登录时,系统会判断该用户的权限,在权限集里验证是否有这个权限,有就通过,没有就拒绝,也在通过后根据不同的角色展示不同的模块和功能。在java中常用Spring Security来对身份进行认证(LDAP、OpenID)对用户进行授权,也能进行鉴权,权限验证等开发。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  3BoKag77WsNU   2023年11月02日   25   0   0 API企业客户验证码