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 相关文章推荐
点击文章内容处弹出页面代码
Oct 01 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
javascript获得当前的信息的一些常用命令
Feb 25 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
Vue自定义事件(详解)
Aug 19 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
ES6中定义类和对象的方法示例
Jul 31 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
Sep 16 Javascript
使用Bootstrap做一个朝代历史表
Dec 10 Javascript
react 路由Link配置详解
Nov 11 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中的串行化变量和序列化对象
2006/09/05 PHP
截获网站title标签之家内容的例子
2006/10/09 PHP
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
php的array_multisort()使用方法介绍
2012/05/16 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
深入理解JavaScript系列(41):设计模式之模板方法详解
2015/03/04 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
vue点击当前路由高亮小案例
2019/09/26 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
Python3中列表list合并的四种方法
2019/04/19 Python
Django框架首页和登录页分离操作示例
2019/05/28 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
python SVD压缩图像的实现代码
2019/11/05 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Python实现EM算法实例代码
2020/10/04 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
《鱼游到了纸上》教学反思
2014/02/20 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
微笑服务标语
2014/06/24 职场文书
测绘工程专业求职信
2014/07/15 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
婚前财产协议书范本
2014/10/19 职场文书
Python OpenCV形态学运算示例详解
2022/04/07 Python