2

ループバックを使用してビューをレンダリングする前に、ユーザーがログインしていることを確認するにはどうすればよいですか? angularアプリを使用してフロントエンドにログインできます。しかし、匿名ユーザーがページを閲覧できないようにしたかったのです。

headers.authorization_token のようなヘッダーだと思っていましたが、そこにはないようです。

パスポートを使用せずに、パスポートの connect-ensurelogin のようなものを探しています。

4

2 に答える 2

4

これは、問題を解決する $interceptor です。

このコードは、ループバック REST サーバーからの 401 応答 (ユーザーがログインしていないか、アクセス トークンの有効期限が切れている) を検出し、ユーザーをログイン ページにリダイレクトします。

// Inside app config block
$httpProvider.interceptors.push(function($q, $location) {
  return {
    responseError: function(rejection) {
      if (rejection.status == 401) {
        $location.nextAfterLogin = $location.path();
        $location.path('/login');
      }
      return $q.reject(rejection);
    }
  };
});

ユーザーがログインすると、このコードは要求されたページにリダイレクトします

// In the Login controller
User.login($scope.credentials, function() {
  var next = $location.nextAfterLogin || '/';
  $location.nextAfterLogin = null;
  $location.path(next);
});
于 2014-10-04T20:15:29.623 に答える