zoukankan      html  css  js  c++  java
  • 账号系统登录流程

    客户端弹出登录弹窗,如果用户上次登录勾选了“记住我”,则默认给填上000000。

    客户端先自行校验各项输入框的值是否符合要求,用正则表达式校验。  

    如果是客户端,可以在登录后自行维护登录状态;如果是Web前端,使用Access Token或者Session维护登录状态。看具体需求。

    Token的生成规则可以是:hash("sha256", user_id + timestamp + salt)

    客户端发起登录请求。传参:

    • String userId 必传
    • String password 如果用户有Token,则前端的密码输入框默认填上000000(自定义的6个字节,反正显示为6个*),不传该参数;没有Token则默认输入框为空,该参数必传。
    • String machineCode 如果要做限制多端登录的话就必传机器码。由客户端代码获取并提交,不由用户填写。
    • String token 可空,如果客户端存储有就必传。如果用户上次登录时勾选了“记住我”,则服务端返回一个随机Token,客户端保存后以后每次登录都带上Token(服务端判断Token是否过期)。

    后端处理流程:

    • 先根据userId判断该用户是否存在,不存在则直接返回“该用户不存在”。
    • Token不为空password错误,则返回“密码错误”。
    • 如果以上校验通过,再判断该用户是否已验证邮箱(如果需求是已验证了邮箱才能开始用的话),校验失败则返回“请校验邮箱”。
    • 如果Token不为空密码为空,说明用户上次登录时勾选了“记住我”。判断该Token的有效期,未过期则返回“登录成功”,否则返回“登录已过期,请重新登录”。

    小结:

    • 如果客户端已有Token,则只传递userId和Token;否则传递userId和password。是否需要machineCode看具体业务需求。
    • 返回登录失败时,清空密码输入框。如果客户端已有Token,就删除Token。或者也可以用一个标记区别是因为服务端判断Token已过期导致的记住密码登录失败了,客户端再删除Token。

    更多参考:http://blog.csdn.net/gglinux/article/details/68948901

  • 相关阅读:
    BZOJ 4025: 二分图
    20180803 题解 Winniechen's Tesst
    前尘浮华一场梦 NOI2018 游记
    UOJ#311. 【UNR #2】积劳成疾
    欢迎到我的新Blog!
    弹飞大爷 BZOJ4764 LCT维护内向基环树森林
    [SCOI2007]修车 BZOJ1070
    KD-Tree
    CDQ分治
    深入解析DC/OS 1.8 – 高可靠的微服务及大数据管理平台
  • 原文地址:https://www.cnblogs.com/guxin/p/8507985.html
Copyright © 2011-2022 走看看