关于注册和登录需要考虑的问题

这是一个关于登录和注册应注意事项记录的文本

注册

相对而言注册比较简单,需要注意的情况比较少主要分为验证码和用户名是否可用
  1. 验证码问题,主要是为了防止批量注册来攻击服务器,注册中必须设置验证码,而且一般验证码通过ajax的方式与服务器进行交互,并在通过前端技术进行校验,在验证码未通过的情况下,设置提交按钮unable,这样可以很大程度上减轻由于错误输入验证码提交而导致的对服务器的无用访问。
  2. 用户名是否可用问题,一般采用ajax技术进行用户名的是否可用校验,和验证码一样,利用前端技术,当用户名不可用的时候直接将提交按钮设置成unable,并在用户名处进行提醒,可以在一定程度上减轻无用提交的问题
  3. 邮箱、手机号等有比较严格的格式要求的输入项,匹配格式的工作一般放在前端代码中进行,当格式错误或者其他的问题,直接在前端纠正,不要访问服务器。

    对于注册需要注意的并不是很多,当然这只是很简单的注册,一些通过第三方账号进行登录的,需要跟第三方进行协议交流,还有需要邮箱或者手机验证的,这个涉及到其他的技术,后面再进行补充

登录

登录相对于注册就稍微复杂一点了,因为涉及到自动登录或者记住密码等逻辑判断,在此处也只是写出一部分的逻辑判断

- 登录

  1. 通过session缓存表示已经登录,如果暂时不考虑自动登录或者记住账号等条件,单纯的登录比较简单,但是有一个问题就是如何保证此次登录状态是一个问题,为此一般采用session技术,登录成功的账号存在session中,然后只需要判断session中是否有数据即可。
  2. 自动登录,一般登录页面有自动登录的勾选框,我们可以在服务器端判断是否自动登录,如果是,则将用户名和密码存在cookie中,以保证下次登录的时候能够实现自动登录的功能

- 自动登录filter端

  1. 首先在filter端判断是否登录,如果已经登录则直接放行,即session中是否有数据,如果有数据代表已经登录,直接放行。
  2. 找cookie,判断request中的cookie数组中是否为空,如果为空表示之前没有选择自动登录,或者cookie被删除,则无法判断之前用户是否选择自动登录,直接放行。
  3. 找到cookie数组不为空,则遍历这个数组,找到相应的存储自动登录需要的账号密码的cookie数据,然后获取到数据,再通过访问数据库进行判断,注意此处必须查询数据库来保证账号密码的登录的可靠性,同时也是为了防止,自动登录过程中第三方修改了密码,存在cookie中的账号密码跟数据库中的账号密码无法匹配的,但是能自动登录的情况。
  4. cookie中的账号密码匹配没有问题,则直接写入session中,表示账号已经登录,至此,自动登录完成

自动登陆:

    Servlet
        1.正常登陆
            1.1 获得用户名密码
            1.2 查询数据库
            1.3 查询到
                1.3.1 登陆成功
                1.3.2 将数据存到session中
            1.4 查询不到
                1.4.1 登陆失败 将失败信息写给jsp
                1.4.2 请求转发给jsp
        2.正常登陆
            1.1 获得用户名密码
            1.2 查询数据库
            1.3 查询到
                1.3.1 登陆成功
                1.3.1.1 获得是否勾选自动登陆
                1.3.1.2 判断如果勾选 创建cookie将数据写给浏览器

                1.3.2 将数据存到session中
            1.4 查询不到
                1.4.1 登陆失败 将失败信息写给jsp
                1.4.2 请求转发给jsp

        3.filter
            0.如果已经自动登陆 session中有数据 不需要自动登陆 直接放行
            1.获得浏览器给服务器的cookie
                1.1 如果没有数据  不进行自动登陆 直接放行
                1.2 如果有数据
                1.2.1 将数据保存在局部变量
            2.判断局部变量是否为空 
                2.1 如果为空 不需要自动登陆直接放行
                2.2 证明cookie一定有数据
                2.3 将数据切割成username  和 password 查询数据库
            3.查询数据库如果没有查询到 不需要自动登陆 直接放行(让Cookie失效  路径和名称必须一致)
            4.有cookie并且cookie是正确  查询数据库查询到了数据  自动登录
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值