Чтение JESSIONID cookie в Angular 6 - PullRequest
       1

Чтение JESSIONID cookie в Angular 6

0 голосов
/ 16 сентября 2018

Я работаю над примером приложения с Spring Boot и Angular 6 Я использую Spring Security с регистрацией на основе формы

При аутентификации я сталкиваюсь с проблемой ниже

1) Пользователь проходит аутентификацию с использованиемлогин на основе формы и возвращает JSESSIONID в cookie

2) Когда следующий запрос отправляется браузером, cookie JSESSIONID имеет значение НЕ ОТПРАВЛЕНО в запросе, вызывающем ошибку аутентификации на основе куки

После небольшого поиска я нашел Angular 6.x / Установить jsessionid cookie ответ, который использует HttpInterceptor для отправки JSESSIONID cookie в запросе.

Но у меня такой вопрос: как прочитать JSESSIONID cookie в первую очередь?Нужно ли нам писать какие-либо услуги для этого?

Помимо подхода, описанного выше, мы можем использовать подход {withCredentials = true}, но его необходимо добавлять в каждый запрос в коде, который кажется неэффективным решением.

Доступен ли любой другой подход для решенияЭта проблема ?

Пожалуйста, помогите

1 Ответ

0 голосов
/ 16 сентября 2018
  1. При успешной аутентификации вы должны получить JSESSIONID из бэкэнда и попытаться сохранить этот JSESSIONID в sesisonStorage (переменная STORAGE).
  2. Далее, как вы сказали, нам нужен Interceptorнаверняка, потому что для следующего HTTP-запроса в палатах нам нужно установить этот JSESSIONID и запустить службу остальных.
  3. Таким образом, вы должны написать пример службы перехватчиков, которая перехватывает во время вызова HTTP, и этот момент получаетsessionId хранится в STORE и устанавливает этот JSESSIONID и запускает HTTP-запрос.Вы могли бы ударить удачно.

Я могу привести вам пример, мы используем аутентификацию JWT 1. во время входа в систему (), я получаю токен Bearer и настройки в хранилище сеанса.(в зашифрованном формате.) 2. Я написал и перехватчик, как показано ниже:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        let token= JSON.parse(this.store.getStoreItem('token'));
        request = request.clone({
            setHeaders: {
                Authorization: `Bearer ${token}`
            }
        });
    return next.handle(request);    
}
Вышеуказанное хранилище является локальной переменной для службы хранилища.Пожалуйста, используйте это как ссылку в случае: https://www.js -tutorials.com / javascript-tutorial / use-localstorage-sessionstorage-using-webstorage-angular4 /

Спасибо и С уважениемКишоре Кумар.K

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...