私はこれらの2つのことを行う方法を探しています。まず、セッションIDが見つからない場合にユーザーをログインページにリダイレクトしたいと思います。セッションIDをメモリのみに保持することに関する意見(クッキーなし)。AngularJS - ログインページへのリダイレクトとセッションIDの永続性
私はリダイレクトのために思い付いた解決策は以下のとおりです。
1 - サービスはセッションIDが存在しない場合は、ログインページにリダイレクトするかどうかをチェックしますの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のサービスを注入し、チェックするユーザisLoggedIn
app.controller('myCtrl', ['$scope', 'OAuth', function ($scope, OAuth) {
//check if user is logged
OAuth.isLoggedIn();
}]);
質問:
1 - isLoggedIn()メソッドは、すべてのコントローラに呼び出されるので、サービスを注入して各コントローラに呼び出さなくても、これを行う方法があるのだろうかと思います。
2 - 私はそれをOAuthの_SessionID変数に保存したいと思いますし、リクエストごとにサーバーに送信したいのです。これは実行可能/安全なアプローチですか?あなたは私にそれのためのいくつかのアイデアを与えることができます
ありがとうございます!
ニースで正常に動作します。先端のダンに感謝! – Bema
[アプローチの書き方](http://www.espeo.pl/2012/02/26/authentication-in-angularjs-application)も非常に役に立ちます。 –