Поддерживать сессию, используя куки / перехватчики Interceptor

0

Во-первых, извините, если этот вопрос не имеет смысла. Я разрабатываю код для управления сессиями для своего приложения со средним стеком. С последних нескольких дней я нашел много способов реализовать его, используя либо файлы cookie, сеансы, либо http-заголовки. Я пытался реализовать, но не добился успеха.

Я успешно связываю перехватчик с моим кодом. Код прослушивает каждый req/res.

Вот какой код:

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);
        }
    };
}]);

Я буду очень благодарен за ваше время и помощь.

  • 0
    что вы имеете в виду под "Поддерживать сессию с помощью Interceptor"? вы все равно можете получить куки с сервера для хранения сеанса без использования перехватчика, вам лучше взглянуть на библиотеку аутентификации, такую как паспорт
  • 0
    @ jack.the.ripper, я пытаюсь реализовать управление сессиями в приложении MEAN. Чтобы по истечении времени сеанса пользователь перенаправлял на страницу входа. Прямо сейчас, после 20 минут повторного подключения отключиться от приложения и перестать показывать данные, но пользовательский интерфейс приложения работает. Я хочу реализовать что-то, чтобы при повторном отключении и попытке пользователя выполнить любой запрос он перенаправлялся на страницу входа. Есть смысл? !!
Показать ещё 1 комментарий
Теги:
cookies
session
angularjs-interpolate

1 ответ

1

В Meanjs у вас есть контроллер проверки подлинности

означают/модули/пользователей/клиентов/Контроллеры/authentication.client.controller.js

но если вы хотите использовать службу проверки подлинности в своем перехватчике, просто имейте в виду, что инъекция зависимости не так просто, как это делается в контроллере.

вам нужно использовать $ injector

 var AuthService = $injector.get('Auth');

то вы должны быть уверены, что ваш пользователь аутентифицирован и проверьте, что в вашей функции запроса что-то вроде

 if (!Authentication.user) {
     $location.path('/'); // or a login page
 }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню