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 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
使用Jquery来实现可以输入值的下拉选单 雏型
Dec 06 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
Dec 15 Javascript
浅析jQuery1.8的几个小变化
Dec 10 Javascript
js日期联动示例
May 02 Javascript
浅谈页面装载js及性能分析方法
Dec 09 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
Dec 26 Javascript
jquery中ajax请求后台数据成功后既不执行success也不执行error的完美解决方法
Dec 24 jQuery
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
vue计算属性+vue中class与style绑定(推荐)
Mar 30 Javascript
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 搜索框提示(自动完成)实例代码
2012/02/05 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
js 立即调用的函数表达式如何写
2014/01/12 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
javascript截取字符串小结
2015/04/28 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
详解Python 函数如何重载?
2019/04/23 Python
python requests指定出口ip的例子
2019/07/25 Python
对Python 字典元素进行删除的方法
2020/07/31 Python
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
买房子个人收入证明
2014/01/16 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
员工入职担保书范文
2014/04/01 职场文书
住宅使用说明书
2014/05/09 职场文书
学校花圃的标语
2014/06/18 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
售后服务承诺函格式
2015/01/21 职场文书
深入理解 Golang 的字符串
2022/05/04 Golang