zoukankan      html  css  js  c++  java
  • 规范 : 过程 : login cookies sessionTimeOut

    规范

    用户登入网站将得到一个cookies,如果用户有2个account,各别登入admin page 和 client page,是会得到2个cookies。

    在reload page时,后台会得到2个cookies,(*asp.net 原装只能有一个cookies的管理,这里没有使用asp.net的工具,自己做迟早会遇到漏掉的问题)

    如果有cookies就必须要有header 表明 selectedAccountTypeName 和 selectedAccountRole, 如果没有cookies就没有header 

    经过验证后直接给前台进行处理,如果发现有2个cookies将提问要使用那个account。

    在每一次的ajax 请求,sessionTimeOut会重新更新,如果admin 的sessionTimeOut是5分钟,client的sessionTimeOut是3个月,这里会各别更新。

    设计要求:顾客要设计和arvixe 一样,这时造三暮四,希望他可以理解这是没差,但如果顾客硬要这样,就只好高价处理问题,换个概念。之后的所有项目将follow 这个概念。

    安全问题:cookies 除了可以写domain 和path的设置之外,还可以httpOnly = true,javascript 是不能访问cookies的设置,游览器和后台可以访问。

    登出时,会让用户选择哪个account登出,同时会请求后台要登出clear cookies(前台javascript是不能对cookies进行操作的)。如果登出时,本地已经cookies 已经expired了,就直接去login界面

    注册过程

    用户注册会制作一个请求,内容有primaryKey,accountTypeName,password。后台会通过primaryKey 和 accountTypeName去sql 找有没有这个account,没有找到就代表可以注册,

    接着会protect hacker,确定前台给的accountTypeName是对的(因为admin是不可以register的),

    接着确定accountTypeName后需要给set roles(一个account可以拥有多个角色,一个角色可以拥有多有权限),

    接着给密码加密,

    接着创建token,

    接着进Sql,

    在发email 或 手机让用户收到token 来网页verifyContact

    verifyContact过程

    用户会收到email或信息,内容是可以直接访问网页,会附带token,primaryKey和accountTypeName,这时后台会收到便开始去sql 找资料,为了提防hacking,每一次token不一样将更新sql 的token no match count++,如果是资料中no match count是大过100,后台会throw一个error singal(resend verify code)

    前台会有一个resend verify code 的button,用户点击将会收到一个email或信息,不管发多少次token将会是一样的,但是token no match count 大过100就会把token给更新。

    如果没被hack,token将成功match,sql 会更新(把token remove),reponse 给前台account 对象同时cookies 也给了。

    这时会把account对象给push去accountArray里,digest后页面会更新。(HdLogin是后台通过cookies找到资源,再给进HdLogin的)

    forgotPassword过程

    用户会提交primaryKey,accountTypeName给后台,找到sql资料后发email或信息,不管发多少次token将会是一样的,但是token no match count 大过100或者是空就会把token给更新或添加。

    resetPassword过程

    收到email或信息后,来到这页将需要输入password和confirm password,前台会提交primary,accountTypeName,password和token,这时后台会收到便开始去sql 找资料,为了提防hacking,每一次token不一样将更新sql 的token no match count++,如果是资料中no match count是大过100,后台会throw一个error singal(go forgot password)

    login过程

    前台需要提交primaryKey,accountTypeName,password去后台,后台去sql找,如果有account 但password 不对,将更新no match count++,如果是资料中no match count是大过100,后台会throw一个error singal(go forgot password)

    account disable

    verifyContact,forgotPassword,resetPassword和resetPassword 过程中sql将得到account对象,如果发现account的status是disabled,将throw一个error singal给前台。

    如果没有disabled,就会看每一个角色,如果角色是diasble,后台会拿掉这角色。

  • 相关阅读:
    百分点零售行业大数据解决方案
    百分点用户标签管理系统
    百分点个性化系统解决方案
    百分点数据洞察系统解决方案
    来学学数据分析吧(二)第一章 预测和关联数量特征
    来学学数据分析吧(一)
    生产者和消费者问题学习以及Java实现
    java中的双重锁定检查(Double Check Lock)
    python学习(十四)面向对象
    python学习(十二)模块
  • 原文地址:https://www.cnblogs.com/stooges/p/4888342.html
Copyright © 2011-2022 走看看