Поддерживать сессию, используя куки / перехватчики Interceptor
Во-первых, извинения, если этот вопрос не имеет смысла. Я разрабатываю код для управления сессиями для моего приложения среднего стека. За последние несколько дней я нашел много способов реализовать это, используя куки, сессии или http - заголовки. Я пытался реализовать, но не добился успеха.
Я успешно связал перехватчик с моим кодом. Код прослушивает каждый запрос.
Вот некоторый код:
app.js
angular.module('MyApp', [
'ngMaterial',
'ngMdIcons',
'ui.router',
'e3-core-ui.services',
'e3-core-ui.utils'
])
.config(['$stateProvider', '$routeProvider','$httpProvider','$mdThemingProvider', '$mdIconProvider', function($stateProvider, $routeProvider, $httpProvider, $mdThemingProvider, $mdIconProvider) {
$httpProvider.interceptors.push('YourHttpInterceptor');
...
Перехватчик-код
angular.module('MyApp')
.factory('YourHttpInterceptor', ['$q',
function($q, ) {
return {
'request': function(config) {
console.log("req");
return config;
},
// Optional method
'response': function(response) {
// do something on response success
console.log("inside the response ");
return response;
},
// optional method
'responseError': function(rejection) {
// Here you can do something in response error, like handle errors, present error messages etc.
console.log("inside the response error ");
return $q.reject(rejection);
}
};
}]);
Я буду очень благодарен за ваше время и помощь.
1 ответ
В Meanjs у вас есть контроллер аутентификации
означают / модули / пользователей / клиентов / Контроллеры /authentication.client.controller.js
но если вы хотите использовать службу аутентификации в вашем перехватчике, просто помните, что внедрение зависимости не так просто, как это сделать в контроллере.
вам нужно будет использовать $ инжектор
var AuthService = $injector.get('Auth');
тогда вы должны будете убедиться, что ваш пользователь аутентифицирован, и проверить это в вашей функции запроса, что-то вроде
if (!Authentication.user) {
$location.path('/'); // or a login page
}