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+ajax请求data显示在GridView上(asp.net)
Aug 27 Javascript
jQuery中live方法的重复绑定说明
Oct 21 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
Nov 15 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
Bootstrap每天必学之前端开发框架
Nov 19 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
jQuery文字轮播特效
Feb 12 Javascript
微信小程序结合Storage实现搜索历史效果
May 18 Javascript
layui原生表单验证的实例
Sep 09 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 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下利用curl判断远程文件是否存在的实现代码
2011/10/08 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
jquery中val()方法是从最后一个选项往前读取的
2015/09/06 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
vue根据值给予不同class的实例
2018/09/29 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
python基础教程之udp端口扫描
2014/02/10 Python
Python中encode()方法的使用简介
2015/05/18 Python
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
python从PDF中提取数据的示例
2020/10/30 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
初中校园广播稿
2014/02/02 职场文书
高中团支书竞选稿
2015/11/21 职场文书