これら 2 つのことを行う方法を探しています。まず、SessionID が見つからない場合にユーザーをログイン ページにリダイレクトしたいと思います。次に、セッション ID をメモリのみに保持する (Cookie を使用しない) ことについてご意見をお聞きしたいと思います。
リダイレクトのために思いついた解決策は次のとおりです。
1 - SessionID が存在するかどうかを確認し、存在しない場合はログイン ページにリダイレクトする OAuth というサービスを作成します。このサービスは、ログインおよびログアウト メソッドも担当します。
app.factory('OAuth', ['$http', function ($http) {
var _SessionID = '';
return {
login: function () {
//Do login ans store sessionID in var _SessionID
},
logout: function () {
//Do logout
},
isLoggedIn: function () {
if(_SessionID) {
return true;
}
//redirect to login page if false
}
};
}]);
2 - 各コントローラーに新しい OAuth サービスを挿入し、ユーザーがログインしているかどうかを確認します
app.controller('myCtrl', ['$scope', 'OAuth', function ($scope, OAuth) {
//check if user is logged
OAuth.isLoggedIn();
}]);
質問:
1 - isLoggedIn() メソッドはすべてのコントローラーで呼び出されるため、サービスを注入して各コントローラーで呼び出すことなくこれを行う方法があるかどうか疑問に思います。
2 - sessionID を保存する Cookie を使用する代わりに、OAuth の _SessionID 変数に保存し、リクエストごとにサーバーに送信します。これは実行可能/安全なアプローチですか? そのためのアイデアを教えてください。
ありがとう!