为了解决自动登入、访问权限机制、登入权限而诞生了这过程,过程需要概念来维护记忆。

通过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的更多相关文章

  1. Linux文件系统启动过程及login的实现

    1. busybox简介 busybox是一个集成了一百多个最常用linux命令和工具的软件,它将许多常用的LINUX命令和工具结合到了一个单独的可执行程序中.虽然与相应的GNU工具比较起来,busy ...

  2. 规范 : 过程 : login cookies sessionTimeOut

    规范 用户登入网站将得到一个cookies,如果用户有2个account,各别登入admin page 和 client page,是会得到2个cookies. 在reload page时,后台会得到 ...

  3. 了解 Nginx 基本概念

    前言 本篇是我学习 Nginx 的一些笔记,主要内容讲述了一些了解 Nginx 需要的基本概念.然后探讨一下 Nginx 的模块化的组织架构,以及各个模块的分类.工作方式.职责和提供的相关指令. 主要 ...

  4. I.MX6 busybox set hosname and login with root

    /************************************************************************** * I.MX6 busybox set hosn ...

  5. 了解 : http请求过程

    游览器的请求就是http 请求,在javascript里可以调用.在发http请求时需要 1.header : 通常表明这是什么报头,如:图片是没有报头的.如果是ajax,会是json 2.body ...

  6. linux系统/sbin/init执行过程

    对于Linux的启动过程,之前一直都是研究到内核运行/sbin/init,启动第一个用户进程为止,因为这部分一直都是在内核态工作,所以对于学习内核还是有帮助的,当时/sbin/init之后的过程也需要 ...

  7. 【项目管理】 PMBOK 基础概念 (引论 PMBOK 笔记)

    好紧张, 3月28考试, 全力学 PMP ~~ 一. 项目 1. 项目的定义 项目 : 项目是为创造 独特 的 产品, 服务 或 成果 而进行的 临时性 工作; -- 独特 : 独特性是项目的特征, ...

  8. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  9. Python中面向对象的概念(科普)

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

随机推荐

  1. MVVM指南(课程学习)

    iOS MVVM 参考 iOS MVVM 前世今生 iOS MVVM 优缺点 下面是我对MVVM知识的总结,主要包括模块划分.开发步骤.重点解说三部分.做这篇文章,主要是考虑总结出可执行的开发步骤,按 ...

  2. js架构设计模式——MVVM模式下,ViewModel和View,Model有什么区别

    MVVM模式下,ViewModel和View,Model有什么区别 Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model. View:也很简单,就 ...

  3. jQuery学习笔记之jQuery.fn.init()的参数分析

    这篇文章主要介绍了jQuery.fn.init()的参数分析,需要的朋友可以参考下   从return new jQuery.fn.init( selector, context, rootjQuer ...

  4. Java 八大类型、String和 StringBuffer

    1. 八大类型 类型 封装类 占字节 int;       Integer;   4 short;         Short;            2 byte;          Byte;   ...

  5. js验证IP及子网掩码的合法性

    function checkIP(ip) {     obj=ip;    var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0 ...

  6. 验证浏览器是否安装已flash插件的js脚本

    function flashChecker() { var hasFlash = 0; //是否安装了flash var flashVersion = 0; //flash版本 if(document ...

  7. HDFS存储系统

    HDFS存储系统 一.基本概念 1.NameNode HDFS采用Master/Slave架构.namenode就是HDFS的Master架构.主要负责HDFS文件系统的管理工作,具体包括:名称空间( ...

  8. jQuery获取、设置title的值

    获取值:var t = $(document).attr('title'); 设置值:$(document).attr('title','value');

  9. 【JAVA笔记】JAVA后端实现统一扫码支付:微信篇

    最近做完了一个项目,正好没事做,产品经理就给我安排了一个任务.   做一个像收钱吧这样可以统一扫码收钱的功能.   一开始并不知道是怎么实现的,咨询了好几个朋友,才知道大概的业务流程:先是开一个网页用 ...

  10. flask蓝图的使用

    首先,我对蓝图的理解相对通俗,就是觉得蓝图对于视图方法模块化.大项目协同开发过程中的一个很好的工具. 1.下图是我们通常情况下使用的项目组织结构