zoukankan      html  css  js  c++  java
  • 四、angularjs 如何在页面没有登录的情况下阻止用户通过更改url进入页面--$stateChangeStart

    有时候用户没有登录或者在某些情况下你是不希望用户进入页面,但是angular的路由机制可以让用户直接通过更改Url进入页面,如何处理这一问题呢?
    ——监控路由转换机制 $stateChangeStart
    具体的操作如下:
       //监控路由转换
            $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {//上面的参数是固定的
                if(toParams.name === 'quanCheck' && !$sessionStorage.userInfo) {     //进入O2O卡券验证页面
                    event.preventDefault();//该方法是阻止页面进入先进行下面的判断
                    //验证token信息是否合法,合法则跳到卡券验证界面
                    Service.post('users', 'verifyToken', { sysId: systemId.o2O, token: toParams.param }).then(function(data) {
                        $sessionStorage.userInfo = angular.extend(data.dataInfo, { currentSystemId: systemId.o2O });
                        $state.go('o2O', { parent: 'verify', name: 'quanCheck', param: null });
                    }, function(error) {
                        $state.go('o2OLogin');
                    });
                } else if(notCheckLoginStates.indexOf(toState.name) < 0 && !$sessionStorage.userInfo) {     //防止用户不登录直接进入功能模块
                    event.preventDefault();
                    $state.go(localStorage.defaultLoginState || 'chooseSystem');
                    swal('请先' + (localStorage.defaultLoginState ? '登录!' : '选择系统!'), '', 'error');
                }
    
                //删除会话储存数据
                if(deleteStorageStates.indexOf(toState.name) >= 0) {
                    delete $sessionStorage.userInfo;
                    delete $sessionStorage.systemInfo;
                }
    
                //删除本地预设登录数据
                if(toState.name === 'chooseSystem') {
                    localStorage.removeItem('defaultLoginState');   
                }
            });
  • 相关阅读:
    openresty + gor+minio 集成
    openresty docker 镜像集成gor
    goreplay v1.1.0 支持pro特性docker 镜像
    编译goreplay v1.1.0 minio 集成支持
    编译goreplay v1.1.0 支持二进制协议捕捉
    goreplay v1.1.0 发布
    super-expressive 可以基于js 直接编写正则
    monio 的一些安全实践
    minio+ nginx rewrite 实现saas租户的个性化管理
    LDAP概念和原理介绍
  • 原文地址:https://www.cnblogs.com/gunelark/p/7290513.html
Copyright © 2011-2022 走看看