ホームページ >ウェブフロントエンド >jsチュートリアル >AngularJs ユーザーがログインするときの対話と検証手順の詳細な説明

AngularJs ユーザーがログインするときの対話と検証手順の詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-16 14:49:081456ブラウズ

今回は、AngularJsユーザーがログインするときの操作と検証の手順と、AngularJsユーザーがログイン時に操作して検証するための注意事項

について詳しく説明します。ここでは実際のケースを紹介します。見てみましょう。

1. 静的ページ構築とNGフォームフォーム検証

実装:

<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 またはセッションに保存し、$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. 次のステップは、ユーザーが他の方法 (アドレス バーにアドレスを直接入力してページに入るなど) でログイン ページをスキップできないようにすることです:

前述したように、このメソッドの操作は、コントローラーによって最初に実行される run メソッドで実行されます。ページに入る前に、ユーザーが合法的にログインしているかどうかがチェックされ、そうでない場合はジャンプさせます。ログイン ページに移動します

angular.module.run(['$rootScope','$state',function($rootScope,$state){
  $rootScope.$on('$stateChangeStart',function(event,toState){
   // 防止FQ
   if(!(sessionStorage.getItem("token")))$state.go('register');
  });
 }]);
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:



🎜

以上がAngularJs ユーザーがログインするときの対話と検証手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。