规范 : 过程 : 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,后台会拿掉这角色。

时间: 2024-10-15 07:54:36

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

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

xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很少,针对xmlrpc的有但是基本都是http协议的,https下的认证处理比较麻烦,而且会话保持也是基本没有太多共享,所以本人决定结合xmlrpc\bugzilla官方文档,网友文章,结合个人经验总结而成,已经在window2007 64+jdk7位机器上调试通过 手把手教你如何实现: 第一步: 在

HTML5基础CSS命名规范讲解

相信有很多HTML5全栈开发的初学者对CSS的命名规则都是一头雾水,这可不是一个好的现象,那么下面就来给大家说一下HTML5全栈开发中的命名规范,希望可以帮到各位.. CSS命名规范 全局样式命名规范:global.css; 框架布局命名规范:layout.css; 字体样式命名规范:font.css; 链接样式命名规范:link.css; 打印样式命名规范:print.css; 常用类/ID命名规范 页眉规范:header 内容规范:content 容器规范:container 页脚规范:fo

Golang 微框架 Gin 简介

框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了.成长总不会一蹴而就,从写出程序获取成就感,再到精通框架,快速构造应用,当这些方面都得心应手的时候,可以尝试改造一些框架,或是自己创造一个. 曾经我以为Python世界里的框架已经够多了,后来发现相比golang简直小巫见大巫.golang提供的net/http库已经很好了,对于http的协议的实现非常好,基于此再造框架,也不会是难事,因此生态中出现了很多框架.既然构造框架的门槛变低了,

SSL/TSL漏洞Freak可苹果安卓用户隐私泄露

  近日,法国安全公司Inria以及微软发现了一存在十多年的SSL/TSL 漏洞Freak,它可让数以百万的Apple.Android 用户在造访诸如白宫.FBI.NSA 等所谓安全网站时被动暴露在对加密流量的中间人攻击攻击中. Freak 漏洞主要是让黑客或情报机构能够执行加密降级攻击,送出弱密码金钥,以便破解加密防护.用这种方法破解加密流量遭后,黑客得以窃听到用户塬本以为十分安全的通讯内容. [Freak来历] 1990 年,美国政府尝试规范使用强加密的出口产品以及装置,他们希望这些货品在运

SSL/TSL漏洞Freak,可致数百万苹果、安卓用户隐私泄露

近日,法国安全公司Inria以及微软发现了一存在十多年的SSL/TSL 漏洞Freak,它可让数以百万的Apple.Android 用户在造访诸如白宫.FBI.NSA 等所谓安全网站时被动暴露在对加密流量的中间人攻击攻击中. Freak 漏洞主要是让黑客或情报机构能够执行加密降级攻击,送出弱密码金钥,以便破解加密防护.用这种方法破解加密流量遭后,黑客得以窃听到用户塬本以为十分安全的通讯内容. [Freak来历] 1990 年,美国政府尝试规范使用强加密的出口产品以及装置,他们希望这些货品在运送出

django sessions(会话)

django会话 django提供对匿名会话全方位的支持,会话框架可以存储和检索每个站点访问者的任意数据.会话数据是存储在服务器端的,并且简要了发送和接受cookie的过程,cookies只包含一个session ID而不是数据本身,除非你是使用了基于cookie备份的会话. 下面我们来看看该如何使用会话框架吧 启用会话 会话是通过一个中间件实现的.所以要想启用会话功能,只需要在MIDDLEWARE_CLASSES 加入django.contrib.sessions.middleware.Ses

python--spider模拟登录

很多情况下,页面的某些信息需要登录才可以查看. 这里的核心是获取登陆之后的 Cookies .话不多说,操练起来. 1. 模拟登录并爬取GitHub 1.1 环境准备 requests库 lxml库 1.2 分析登录过程 打开Github的登录页面,https://github.com/login.输入用户名和密码,打开开发者工具,勾选preserve log,这表示显示持续日志. 点击登录按钮,可以看到各个请求过程. 点击第一个请求,进入详细界面:  Headers 里面包含了: From D

【搜索引擎(二)】索引、倒排索引、哈希表、跳表

索引 其实在计算机中我们早已接触过跟索引有关的东西,比如数据库里的索引(index),还有硬盘文件系统中其实也有类似的东西,简而言之,索引是一种为了方便找到自己需要的东西而设计出来的条目,你可以通过找索引找到自己想要内容的位置.索引过程是: 关键字->索引->文档.在图书馆内的书分门别类,就是一种按类别来分的索引.当然索引还有很多其他的实现. 仅仅有索引的概念是不够的.虽然分门别类是一种方法,但是我们在拥有一堆文档的时候必须要有从文档到索引的规范过程,并且索引的结构要满足能够让人(或者计算机)

成功都一样,失败各不同;失败的项目也许值得你警醒

目录 一.团队建设 1.1.注意高效的研发团队建设 1.2.稳定的团队 1.3.PM非常关键 二.规范过程 2.1.合理的安排工作计划 2.2.开发前制订开发规范 2.3.项目完成时注重归纳总结 2.4.使用源代码管理器 2.5.制定项目失败计划 2.6.使用一体化项目管理软件 2.6.1.项目管理工具能完成的功能 2.6.2.IT项目管理常用工具 三.定位与需求 3.1.尽量做产品 3.2.抽象出项目的核心 3.3.采用多种收集需求的方式 3.4.不要过度收集需求 3.5.尽量选择大项目 3.