规范

用户登入网站将得到一个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,后台会拿掉这角色。

规范 : 过程 : login cookies sessionTimeOut的更多相关文章

  1. Cookies 和session

    一 会话跟踪 在一个会话的多个请求中共享数据,这就是会话跟踪技术 请求登录(请求参数是用户名和密码): 请求转账(请求参数与转账相关的数据): 请求信誉卡还款(请求参数与还款相关的数据). 登录信息在 ...

  2. 18、cookies与session学习笔记

    本文记录学习 cookies 和 session 的一些小练习和知识点   知识点1    cookies 和 session 的由来   HTTP协议是无状态的协议,因为一旦浏览器和服务器之间的请求 ...

  3. bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

    xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...

  4. python+requests实现接口测试 - cookies的使用

    在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别信息, 会造成识别失败. 如一些需要用户登录以后才能访问的页面. import requests mya ...

  5. 老猿学5G扫盲贴:3GPP规范文档命名规则及同系列文档阅读指南

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在学习5G规范过程中,有些内容把握不定的时候,有时 ...

  6. Golang 微框架 Gin 简介

    框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应 ...

  7. python3使用requests登录人人影视网站

    python3使用requests登录人人影视网站 继续练习使用requests登录网站,人人影视有一项功能是签到功能,需要每天登录签到才能升级. 下面的代码python代码实现了使用requests ...

  8. Android WebKit 内核

    一.WebKit简介 WebKit是一个开源的浏览器网页排版引擎,包含WebCore排版引擎和JSCore引擎.WebCore和JSCore引擎来自于KDE项目的KHTML和KJS开源项目.Andro ...

  9. 8:django sessions(会话)

    django会话 django提供对匿名会话全方位的支持,会话框架可以存储和检索每个站点访问者的任意数据.会话数据是存储在服务器端的,并且简要了发送和接受cookie的过程,cookies只包含一个s ...

随机推荐

  1. iOS MVVM 前世今生

    MVVM,Model-View-ViewModel,一个从 MVC 模式中进化而来的设计模式,最早于2005年被微软的 WPF 和 Silverlight 的架构师 John Gossman 提出.

  2. 三 APPIUM Android自动化 测试初体验

    1.创建一个maven项目 成功新建工程: 编辑pom.xml,在<dependencies></dependencies>下添加appium相关依赖: <depende ...

  3. Windows server 2008 R2 64位系统安装ZendOptimizer-3.3.0a-Wind

    如果不安装ZEND的话,一些PHP网站程序使用ZEND加密后就无法使用,比如DISCUZ,SHOPEX,ECSHOP等,所以要想安装这些程序,ZEND是一定要安装的,要不会出现乱码等问题. 安装ZEN ...

  4. js实时显示系统时间

    刚刚在做后台页面最上面要动态显示时间刚写了这个代码 将这段代码加入<head></head> <!--时间显示代码 --><script>functio ...

  5. Last-Modified和ETag以及Apache和Nginx中的配置

    1) 什么是”Last-Modified”? 在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修 ...

  6. Java泛型在spring jdbc template中的类似应用

    泛型的使用保证返回的对象类型的正确: package com.stono.gentest; import java.util.ArrayList; import java.util.List; pub ...

  7. Java泛型中的通配符的使用

    package com.srie.testjava; import java.util.ArrayList; import java.util.List; public class TestClass ...

  8. java调用oracle存储过程,返回结果集

    package com.srie.db.pro; import java.sql.CallableStatement; import java.sql.Connection; import java. ...

  9. line-height系列——定义和工作原理总结

    一.line-height的定义和工作原理总结 line-height的属性值: normal    默认  设置合理的行间距. number  设置数字,此数字会与当前的字体尺寸相乘来设置行间距li ...

  10. C语言,使用宏来传数字参数

    a.h #define xglue(x, y) x ## y #define glue(x, y) xglue(x, y) static int glue(load_elf, SZ)(void) { ...