AngularJs用户登录问题处理(交互及验证、阻止FQ处理)


Posted in Javascript onOctober 26, 2017

本文介绍了AngularJs用户登录的交互及验证、阻止FQ处理,具体如下

1. 静态页面搭建及ng的form表单验证实现:

<div class="register-frame-all">
  <div class="register-frame">
   <div class="register-msg">
    <i></i>
    <form name="loginForm" ng-submit="loginAction()">
     <div class="form-group">
      <div class="input-group">
       <span class="input-group-addon register-user"></span>
       <input autocomplete="off" type="number" class="form-control" placeholder="请输入手机号" required ng-model="loginData.loginName" name="loginName">
      </div>
      <div class="input-group">
       <span class="input-group-addon register-pwd"></span>
       <input type="password" class="form-control" placeholder="请输入密码" required ng-model="loginData.pwd" name="pwd">
      </div>
      <button type="submit" class="btn btn-block btn-danger"
        ng-disabled="!( (loginForm.loginName.$valid) && (loginForm.pwd.$valid) )">登录</button>
      <em></em>
     </div>
    </form>
   </div>
   <div class="register-pic" ng-style="registerRnum"></div>
  </div>
 </div>

2. 定义用户登录的控制器,在控制器中使用http服务处理登录接口:

$http({
    url:G.apiUrl_dl+'loginByPhone',
    method:'post',
    data:{
     'phone':loginName,
     'pwd':pwd
    },
    headers:{'Content-Type':'application/x-www-form-urlencoded'},
    transformRequest: function(obj) {
     var str = [];
     for(var p in obj){
      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
     }
     return str.join("&");
    }
   }).success(function(data){
    // 登录成功后的操作...18     19    });

3. 如果登录成功后将用户的数据保存到cookie或session中 用$state服务进行跳转到指定的页面中:

// 登录成功
    if($scope.loginActionData.token){
     sessionStorage.setItem("token", $scope.loginActionData.token);
     sessionStorage.setItem("tsname", $scope.loginActionData.name);
     sessionStorage.setItem("rights", $scope.loginActionData.rights);
     sessionStorage.setItem("userId", $scope.loginActionData.userId);
     sessionStorage.setItem("departmentsId", $scope.loginActionData.departmentsId);
     sessionStorage.setItem("departmentsName", $scope.loginActionData.departmentsName);
     $state.go('index');
    }else{
     // 登录失败的弹框提示
     $('#loginAction').modal('show');
    }

4. 接下来就是防止用户跳过登录页面通过其他方法(如在地址栏直接输出地址进入页面)  的防FQ操作:

这个方法的操作我放在之前曾经说过得控制器最先执行的run方法中执行,每次进到一个页面之前都会进行检查该用户是否合法登录,如果不是合法登录我们将会让他跳转到登录页面

angular.module.run(['$rootScope','$state',function($rootScope,$state){
  $rootScope.$on('$stateChangeStart',function(event,toState){
   // 防止FQ
   if(!(sessionStorage.getItem("token")))$state.go('register');
  });
 }]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
通过JavaScript控制字体大小的代码
Oct 04 Javascript
js substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
Feb 17 Javascript
对js eval()函数的一些见解
Aug 15 Javascript
基于JavaScript实现微信抢红包功能
Jul 20 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
vue组件开发props验证的实现
Feb 12 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
node文字生成图片的示例代码
Oct 26 #Javascript
vue-cli中打包图片路径错误的解决方法
Oct 26 #Javascript
javascript+html5+css3自定义弹出窗口效果
Oct 26 #Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 #Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 #Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
Oct 26 #Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 #Javascript
You might like
php allow_url_include的应用和解释
2010/04/22 PHP
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
React diff算法的实现示例
2018/04/20 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python中获取网页状态码的两个方法
2014/11/03 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
美国著名首饰网站:BaubleBar
2016/08/29 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
专升本个人自我评价
2013/12/22 职场文书
致800米运动员广播稿
2014/02/16 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书
新员工试用期自我评价
2015/03/10 职场文书
2016新年慰问信范文
2015/03/25 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技