三、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‘);
            }
        });
时间: 2024-11-09 19:54:39

三、angularjs 如何在页面没有登录的情况下阻止用户通过更改url进入页面--$stateChangeStart的相关文章

在禁用windows登录的情况下,sa密码也忘记了,怎么处理

楼主之前有遇到过禁用windows登录的情况下,sa密码也忘记,然后网上搜了很多处理方法,分别试过,但是均为解决,下面逐一说下楼主用过的方法 方法一:根据网上搜的一篇博客来实际操作的 (最后操作到sqlcmd -A时报错) 启用本地帐户:1.先看一下本机的帐户是否具有管理员的权限,如果没有添加上.2.在开始菜单的搜索框中输入 cmd , 右键单击选择以管理员身份运行3.在命令提示符输入 NET STOP MSSQLSERVRE 停止MSSQLSERVER运行(若已经停止则可以不用此方法)4.若3

Ionic+AngularJS 开发的页面在微信公众号下显示不出来原因查究

ionic 页面 微信浏览器遇到的坑 公司的微信公众号一部分页面是用AngularJS+Ioinc开发,发现在本地浏览器测试的时候都没问题,传到服务器在微信公众号下跑就出问题来,经查是: index-tab页面 406 not accessable http请求头问题 1 $httpProvider.interceptors.push(function() { 2 return { 3 "request": function(config) { 4 //console.log(conf

linux在telnet情况下root登录提示login incorrect

root登录时总是提示 login incorrect SSH可以登录 别的用户也可以通过telnet登录 唯独root不可以 解决方法: vi /etc/pam.d/login # auth requisite pam_securetty.so 注释这行 linux默认情况下root用户使用telnet是登录不了的,需要修改/etc/secrueety文件 可以把这个文件重命名或者加入pts/1之内的数据 如图 这样就可以在root情况下用telnet远程登录了 安装telnet 后,root

.net三步配置错误页面,让你的网站远离不和谐的页面

如果你的网站出现一堆让人看不懂的报错,那么你就不是一个合格的程序员,也不是一个合格的站长. 下面的方面可以帮助你的网站远离让人头大的页面. 第一步:配置web.config 打开web.config,在<system.web>节点下添加如下代码: <customErrors mode="On" defaultRedirect="ErrorPages.aspx"> <error statusCode="403" red

三个关于404页面的设置问题

网站建设中的404页面也就是一个网站遇到错误时展示的页面.在一个网站运营中,404页面是不可避免都会出现的,比如由于用户输入网址有误,或者是站长自己误删了某个页面的内容等等,这都会产生http的404错误码.既然无法控制的404的出现,那么我们就应该做好出现404后的善后处理,好好运用404页面为站点的优化和用户体验服务.在通常情况下,404页面被站长看作是处理无效链接的重要手段,利用好404页面也可以给网站带来非常明显的帮助.关于404页面设置的问题有许多,笔者在这里重点介绍一下关于404页面

三种呈现错误页面的方式

三种呈现错误页面的方式 由于ASP.NET Core应用是一个同时处理多个请求的服务器应用,所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止.出于安全方面的考量,为了避免敏感信息的外泄,客户端在默认的情况下并不会得到详细的出错信息,这无疑会在开发环境下增加查错纠错的难度.对于生产环境来说,我们也希望最终用户能够根据具体的错误类型得到具有针对性并且友好的错误消息.ASP.NET Core提供了相应的中间件帮助我们将定制化的错误信息呈现出来,这些中间件都定义在"Microsoft.AspN

angularjs中的页面访问权限设置

11月在赶一个项目,这阵子比较忙,挤挤时间更一篇博客吧,如标题所述说说在ng中页面访问权限控制的问题,水平有限各位看官见谅: 在以往的项目中,前后端常见的配合方式是前端提供页面和ui加一点DuangDuangDuang的效果,后端搭建框架数据结构和数据交互(数据交互前后端有交集),不管是.net.java or php都能一对多的提供前端服务,然而在新形式下项目中运用了前端框架,开发情况就不一样了,比如我要说的这是在angular框架下完成的开发,模式是后端提供服务和api文档,页面和数据交互及

点击页面先登录,登录后继续之前页面

登录诸如当当网之类的购物网站,未登录前可以先将产品放入购物车,当点击结账的时候会先跳出登录页面,登录后,继续跳至结账页面.一直想写一个类似的demo,终于昨天写了一个,记录下来. 先看代码吧,看完再讲代码. 代码块 后台 包含两个servlet,一个domain对象. CheckLogin.java package com.login; import java.io.IOException; import javax.servlet.ServletException; import javax.

使用Shiro登录成功后,跳转到之前访问的页面实现

转:http://blog.csdn.net/lhacker/article/details/20450855 很多时候,我们需要做到,当用户登录成功后,跳转回登录前的页面.如果用户是点击"登录"链接去到登录页面进行登录的,我们很容易跟踪用户的登录前的页面.比如,在"登录"链接后加一个url参数,如:http://www.xxx.com/login.html?url=http://www.xxx.com/xx.html,这个url就是当前页面.用户浏览不同页面,&q