溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AngularJs如何解決用戶登錄的問題

發(fā)布時間:2021-07-20 09:35:45 來源:億速云 閱讀:130 作者:小新 欄目:web開發(fā)

小編給大家分享一下AngularJs如何解決用戶登錄的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下

1. 靜態(tài)頁面搭建及ng的form表單驗證實現(xiàn):

<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-></div>
  </div>
 </div>

2. 定義用戶登錄的控制器,在控制器中使用http服務(wù)處理登錄接口:

$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. 如果登錄成功后將用戶的數(shù)據(jù)保存到cookie或session中 用$state服務(wù)進(jìn)行跳轉(zhuǎn)到指定的頁面中:

// 登錄成功
    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. 接下來就是防止用戶跳過登錄頁面通過其他方法(如在地址欄直接輸出地址進(jìn)入頁面)  的防FQ操作:

這個方法的操作我放在之前曾經(jīng)說過得控制器最先執(zhí)行的run方法中執(zhí)行,每次進(jìn)到一個頁面之前都會進(jìn)行檢查該用戶是否合法登錄,如果不是合法登錄我們將會讓他跳轉(zhuǎn)到登錄頁面

angular.module.run(['$rootScope','$state',function($rootScope,$state){
  $rootScope.$on('$stateChangeStart',function(event,toState){
   // 防止FQ
   if(!(sessionStorage.getItem("token")))$state.go('register');
  });
 }]);

以上是“AngularJs如何解決用戶登錄的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI