मैं इन दो चीजों को करने का एक तरीका ढूंढ रहा हूं, सबसे पहले मैं उपयोगकर्ता को लॉगिन पृष्ठ पर रीडायरेक्ट करना चाहता हूं यदि कोई सत्र आईडी नहीं मिलती है और दूसरा मैं आपका सुनना चाहता हूं केवल स्मृति में स्थायी सत्र आईडी के बारे में राय (कोई कुकीज़ नहीं)।AngularJS - लॉगिन पृष्ठ पर रीडायरेक्ट करें और सत्र आईडी का दृढ़ता
समाधान मैं पुन: निर्देशन के लिए साथ आए हैं:
1 - एक सेवा OAuth कि जांच करेगा कि SessionID मौजूद है और यदि नहीं, तो प्रवेश पृष्ठ पर पुनर्निर्देश बनाएं जिसका नाम, सेवा भी प्रवेश के लिए जिम्मेदार है और लॉगआउट विधियों।
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 - सत्र आईडी को स्टोर करने के लिए कुकी रखने के बजाय मैं इसे ओएथ के _SessionID चर में सहेजना चाहता हूं और प्रत्येक अनुरोध के लिए इसे सर्वर पर भेजना है। क्या यह एक व्यवहार्य/सुरक्षित दृष्टिकोण है? क्या आप मुझे इसके लिए कुछ विचार दे सकते हैं?
धन्यवाद!
नाइस में ठीक काम करता है। टिप दान के लिए धन्यवाद! – Bema
[दृष्टिकोण के बारे में लिखना] (http://www.espeo.pl/2012/02/26/authentication-in-angularjs- अनुप्रयोग) भी बहुत उपयोगी है। –