ループバックを使用してビューをレンダリングする前に、ユーザーがログインしていることを確認するにはどうすればよいですか? angularアプリを使用してフロントエンドにログインできます。しかし、匿名ユーザーがページを閲覧できないようにしたかったのです。
headers.authorization_token のようなヘッダーだと思っていましたが、そこにはないようです。
パスポートを使用せずに、パスポートの connect-ensurelogin のようなものを探しています。
ループバックを使用してビューをレンダリングする前に、ユーザーがログインしていることを確認するにはどうすればよいですか? angularアプリを使用してフロントエンドにログインできます。しかし、匿名ユーザーがページを閲覧できないようにしたかったのです。
headers.authorization_token のようなヘッダーだと思っていましたが、そこにはないようです。
パスポートを使用せずに、パスポートの connect-ensurelogin のようなものを探しています。
これは、問題を解決する $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);
});