Angular невозможно сохранить токен jwt на IOS устройствах - PullRequest
0 голосов
/ 16 января 2020

Я использую следующее:

  • Angular 7.2.15
  • django 2.1.7
  • djangorestframework 3.9.1
  • djangorestframework-jwt 1.11.0

Я храню токен JWT в локальном хранилище, и это работает на компьютерах и android телефонах (по крайней мере, на тех, которые я тестировал), но когда я пытаюсь войти в систему на iPhone или iPad он принимает учетные данные и показывает мою целевую страницу в течение доли секунды, затем выдает 401 несанкционированную ошибку и журналы возвращаются (у меня настроен выход из 401 ошибки).

Я провел некоторую отладку, используя webtools с safari, и похоже, что мой токен не сохраняется, и это объясняет, почему я получаю 401.

Мой скрипт входа в систему довольно прост

login(username, password) {
    return this.http.post<any>(`${this.apiUrl}/api-token-auth/`, { username, password })
        .pipe(map(user => {
            // store user details and jwt token in local storage to keep user logged in between page refreshes
            localStorage.setItem('currentUser', JSON.stringify(user));
            this._currentUserSubject.next(user);
            return user;
        }));
}

Есть мысли о том, как я могу получить этот токен для хранения на iPhone / iPad?

Заранее спасибо, jA C

...