• 技术文章 >web前端 >js教程

    AngularJs用户登录交互及验证、阻止FQ处理详解

    小云云小云云2018-01-20 14:09:57原创860
    本文主要为大家详细介绍了AngularJs用户登录问题处理,包括交互及验证、阻止FQ处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

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


    <p class="register-frame-all">
      <p class="register-frame">
       <p class="register-msg">
        <i></i>
        <form name="loginForm" ng-submit="loginAction()">
         <p class="form-group">
          <p 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">
          </p>
          <p 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">
          </p>
          <button type="submit" class="btn btn-block btn-danger"
            ng-disabled="!( (loginForm.loginName.$valid) && (loginForm.pwd.$valid) )">登录</button>
          <em></em>
         </p>
        </form>
       </p>
       <p class="register-pic" ng-style="registerRnum"></p>
      </p>
     </p>

    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');
      });
     }]);

    相关推荐:

    AngularJS的环境搭建初学教程

    AngularJS实现自定义指令方法详解

    AngularJS实现自定义指令及指令配置项的方法详解

    以上就是AngularJs用户登录交互及验证、阻止FQ处理详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript AngularJs 验证
    上一篇:jquery使用iscroll实现上拉、下拉加载刷新实例分享 下一篇:node实现文字生成图片代码分享
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一文了解JavaScript栈• Node.js怎么实现分片上传?方法介绍• JavaScript字典与集合(总结分享)• 如何上手Angular,先从 8 个开源项目开始!• 怎么利用node生成word文档?使用库分享
    1/1

    PHP中文网