规范

用户登入网站将得到一个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. python3中bytes与string的互相转换

    首先来设置一个原始的字符串, Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win32 Ty ...

  2. 创建iwatch 程序选项

    include complication :包含自定义表盘事件 include glance scene:包含缩略图事件

  3. 笔记整理——C语言-http

    C语言 HTTP GZIP数据解压 - 大烧饼的实验室 - 博客园 - Google Chrome (2013/4/10 18:22:26) C语言 HTTP GZIP数据解压   这个代码在http ...

  4. Borda count

    波达计数法(Borda Count)是较为简单的排序投票法,每个选项借由选票上的排序来取得积分,积分最高者获胜.另一个类似的方法则是位置投票制. 投票人按喜好排列候选者.如果候选者在选票的排第一位,它 ...

  5. html 5 本地数据库(Web Sql Database)核心方法openDatabase、transaction、executeSql 详解

    Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库.Safari.Chrome. Firefox.Opera等主流浏览器都已经支持Web ...

  6. Java线程:线程中断

    interrupt方法可以用来请求终止线程. 当对一个线程调用interrupt方法时,线程的中断状态被置位.这时每个线程都有boolean标志.每个线程都应该不时的检查这个标志,以判断线程是否被中断 ...

  7. node源码详解(三)—— js代码在node中的位置,process、require、module、exports的由来

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource3 本博客同步在https://cnodejs.o ...

  8. android延迟执行

     延迟执行可以通过以下操作实现,按照推荐的顺序列出来 1. new Handler().postDelayed(new Runnable(){ public void run() { //execut ...

  9. iOS 获取公历、农历日期的年月日

    iOS 获取公历.农历日期的年月日 介绍三种方法获取 Date (NSDate) 的年月日. 用 date 表示当前日期.测试日期为公历 2017 年 2 月 5 日,农历丁酉年,鸡年,正月初九. l ...

  10. 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展

    阅读目录 前言 回顾 本地的一致性 领域事件发布出现异常 订阅者处理出现异常 结语 一.前言 上篇中我们初步运用了领域事件,其中还有一些问题我们没有解决,所以实现是不健壮的,下面先来回顾一下. 二.回 ...