0

ユーザー名とパスワードが正しい場合、ユーザー名とパスワードが正しい場合、トークンを返し、ngStorage を使用してローカル ストレージに保存しますが、localStorage にトークンを保存するのは安全ではないという記事を読み、Cookie Http に保存することを参照しました。Cookie Http にトークンを保存するにはどうすればよいですか。それは安全ですか、またはトークン認証を処理するためのより良い方法はありますか

$scope.loginUser = function(){
    $http({
      method: 'POST',
      url: 'ourdomain.com/api/token',
      headers: 
      {
          'Content-type': 'application/x-www-form-urlencoded',
      },
      data: 
      'UserName=' + $scope.username + 
      '&Password=' + $scope.password 
      }).success(function(data, status) {
               $localStorage.token = data;
               console.log(data);
      })
      .error(function(data, status) {
          console.log("Error");
      });
}
4

2 に答える 2

2

Cookie の場合、ユーザーは Cookie を無効にできます。

このリンクでは、トークン ベースと Cookie ベースについて説明できます

https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/

これは、localStorage、sessionStorage、session、および cookies の違いです。localStorage、sessionStorage、session、および cookies の違いは何ですか?

于 2016-04-29T14:39:04.970 に答える
1

スタライザーを使用することを強くお勧めします: https://github.com/sahat/satellizer

メールアドレスとパスワードでログイン

クライアント: ログイン フォームに電子メール アドレスとパスワードを入力します。

クライアント: フォーム送信時に、電子メールとパスワードを使用して $auth.login() を呼び出します。

クライアント: POST リクエストを /auth/login に送信します。サーバー: メールが存在するかどうかを確認し、存在しない場合は 401 を返します。

サーバー: パスワードが正しいかどうかを確認し、正しくない場合は 401 を返します。

サーバー: JSON Web トークンを作成し、クライアントに送り返します。

クライアント: トークンを解析し、ページのリロード後に後で使用するためにローカル ストレージに保存します。

var user = {
  email: $scope.email,
  password: $scope.password
};

$auth.login(user)
  .then(function(response) {
    // Redirect user here after a successful log in.
  })
  .catch(function(response) {
    // Handle errors here, such as displaying a notification
    // for invalid email and/or password.
  });


// Controller
$scope.isAuthenticated = function() {
  return $auth.isAuthenticated();
};

<!-- Template -->
<ul ng-if="!isAuthenticated()">
  <li><a href="/login">Login</a></li>
  <li><a href="/signup">Sign up</a></li>
</ul>
<ul ng-if="isAuthenticated()">
  <li><a href="/logout">Logout</a></li>
</ul>
于 2016-04-29T14:39:00.507 に答える