概念 : 过程 : 前台login
为了解决自动登入、访问权限机制、登入权限而诞生了这过程,过程需要概念来维护记忆。
通过singlePageAutoLoginLocalStorage, UIStateLocalStorage, User, 这3个对象是过程中会用到的
singlePageAutoLoginLocalStorage : {
accountId : 5,
singlePage : "employer"
}
UIStateRoleSelectedLocalStorage : {
accountId : 5,
singlePage : "employer",
accountRole : "customer",
stateUrl : "a/b/c"
}
user : {
account : {},
role : "",
account : []
}
一个部分是负责auto login,另一个部分是负责page permission
过程:auto login
Hdlogin 把对象放去 rootscope.user
remove singlePageAutoLoginStorage data if user.accounts no match
match current single page & singlePageAutoLoginStorage for auto login
if match, fill user.account (no fill account.user.role)
if no, got callback(project'logic)
if yes, return
true, fill user.account, set singlePageAutoLoginStorage (no fill account.user.role)
false, normal process
if no, normal process
过程:page permission
setup the permission for every UIState, which is callback
1. getUsaAccountTypeNames
2. getSaRolesName
3. redirectLoginUrl
4. redirectSwitchUrl
5. redirectToNoRolePermission
if user.account == undefined
if yes, redirectLoginUrl
if no, check getUsaAccountTypeNames contain user.account.type
if no, redirectLoginUrl
if yes, process
filter pagePermissionRoles with user.account.roles (filter way is check every permissionRole got accountRole then keep, other remove)
if pagePermissionRoles length == 0
alert("your account roles is not allowed visit") > redirectToNoRolePermission
if pagePermissionRoles.length > 0
pagePermissionRoles contain UIStateRoleSelectedLocalStorage
if yes, fill user.role
if no, pagePermissionRoles.length == 1 ?
if yes, fill user.role
if no, pagePermissionRoles contain user.role ?
if yes, fill user.role
if no, redirectSwitchUrl
过程:login page
state.get(param) for the return url permission(mean success will redirect to returnUrl), the param come to url.
login page will show a select option for user select a accountType, this will let user know what the page need and ajax header need a selectedAccountType
succesfull will update the user.account and user.role
过程:logout
if auto login got project'logic, then logout also got project'logic, which is logout need clear all singlePageAutoLoginStorage or clear current singlePageAutoLoginStorage
概念 : 过程 : 前台login的更多相关文章
- Linux文件系统启动过程及login的实现
1. busybox简介 busybox是一个集成了一百多个最常用linux命令和工具的软件,它将许多常用的LINUX命令和工具结合到了一个单独的可执行程序中.虽然与相应的GNU工具比较起来,busy ...
- 规范 : 过程 : login cookies sessionTimeOut
规范 用户登入网站将得到一个cookies,如果用户有2个account,各别登入admin page 和 client page,是会得到2个cookies. 在reload page时,后台会得到 ...
- 了解 Nginx 基本概念
前言 本篇是我学习 Nginx 的一些笔记,主要内容讲述了一些了解 Nginx 需要的基本概念.然后探讨一下 Nginx 的模块化的组织架构,以及各个模块的分类.工作方式.职责和提供的相关指令. 主要 ...
- I.MX6 busybox set hosname and login with root
/************************************************************************** * I.MX6 busybox set hosn ...
- 了解 : http请求过程
游览器的请求就是http 请求,在javascript里可以调用.在发http请求时需要 1.header : 通常表明这是什么报头,如:图片是没有报头的.如果是ajax,会是json 2.body ...
- linux系统/sbin/init执行过程
对于Linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要 ...
- 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)
好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...
- 面向对象(OOP)基本概念
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
- Python中面向对象的概念(科普)
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
随机推荐
- spring mvc自定义注解--登录时密码加密注解
1,定义注解名称接口 /** * 使用该注解不用再MD5转换了 * * @author adonis * */ @Target(ElementType.PARAMETER) @Retention(Re ...
- swift 启动图片的设置
1 .找到Assets.xcassets 2. 在Assets.xcassets里创建 New LaunchImage 拖入相应的图片 3.选中你的项目,点击General 在App Icons an ...
- Oracle 11gR2 RAC ohasd failed to start 解决方法
rcrCRS-4124: Oracle High Availability Services startup failed. CRS-4000: Command Start failed, or co ...
- 第二部分 条件控制执行语句、循环语句、switch语句、跳转语句和其它语句
条件控制执行语句: if语句 if....else....语句 循环语句: while语句 do....while语句 for语句 switch语句: 跳转语句: break; continue; r ...
- Canvas get/putImageData
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 关于Visual Studio未能加载各种Package包的解决
参考微软社区的一个答复解决了VS2013的问题: 进入VS对应的用户缓存文件夹,删掉那个Microsoft.VisualStudio.Default.cache缓存文件,就可以了. 这个错误估计是我们 ...
- CentOS 6.5下NFS安装配置
[root@local /]# yum -y install nfs-utils rpcbind3.创建共享目录:[root@local /]# mkdir /sharestore4.NFS共享文件路 ...
- 条形码--JsBarcode
介绍一下在GitHub生成条形码的js插件→JsBarcode 支持的条形码: 条码支持的有: CODE128 CODE128 (自动模式切换) CODE128 A/B/C (强制模式)EAN ...
- HTML5 & CSS3 初学者指南(4) – Canvas使用
介绍 传统的HTML主要用于文本的创建,可以通过<img>标签插入图像,动画的实现则需要第三方插件.在这方面,传统的HTML极其缺乏满足现代网页多媒体需求的能力.HTML5的到来,带来了新 ...
- 通过实例解释LinuxC下argc,argc[]的意义
MarkdownPad Document html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,ab ...