Я ищу способ сделать эти две вещи, сначала я хочу перенаправить пользователя на страницу входа в систему, если не найден SessionID, и, во-вторых, я хотел бы услышать ваше мнение о сохранении идентификатора сеанса только в памяти (без файлов cookie).
Решение, которое я придумал для перенаправления:
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 - Вместо того, чтобы иметь cookie для хранения sessionID, я хочу сохранить его в переменной OAuth _SessionID и для каждого запроса отправить его на сервер. Является ли это жизнеспособным/безопасным подходом? Можете ли вы дать мне несколько идей для этого?
Спасибо!