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 相关文章推荐
js获取浏览器的可视区域尺寸的实现代码
Nov 30 Javascript
js简易namespace管理器 实例代码
Jun 21 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
Dec 20 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
Jan 14 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
基于JavaScript实现前端数据多条件筛选功能
Aug 19 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
浅谈express.js框架中间件(middleware)
Apr 07 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
phpmyadmin操作流程
2006/10/09 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php mysql_real_escape_string函数用法与实例教程
2013/09/30 PHP
php实现简单加入购物车功能
2017/03/07 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
详解JS中的attribute属性
2017/04/25 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
python插入排序算法实例分析
2015/07/03 Python
Python编程中的异常处理教程
2015/08/21 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python用input输入列表的实例代码
2020/02/07 Python
信号生成及DFT的python实现方式
2020/02/25 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
平面设计的岗位职责
2013/11/08 职场文书
博士研究生自我鉴定范文
2013/12/04 职场文书
个人委托书格式
2014/04/04 职场文书
2015年元旦标语大全
2014/12/09 职场文书
升职感谢信
2015/01/22 职场文书
女儿满月酒致辞
2015/07/29 职场文书
员工考勤管理制度
2015/08/06 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
CentOS MySql8 远程连接实战
2022/04/19 MySQL