Angular OID C очищает локальное хранилище в Safari - PullRequest
0 голосов
/ 06 мая 2020

Я использую https://www.npmjs.com/package/angular-oauth2-oidc библиотеку.

Я создал новый проект и реализовал эту библиотеку.

My app.component.ts :

<button (click)="auth()">auth</button>

<div *ngFor="let message of messages">
  {{message.key}} <span class="old">{{message.oldValue}}</span> <span class="new">{{message.newValue}}</span>
</div>
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
  public messages = [];

  constructor(private oAuthService: OAuthService) {
    // here i'm logging local storage changing
    window.addEventListener('storage', (event) => {
      this.messages.push(event);
    });

    this.oAuthService.loadDiscoveryDocument().then(() => {
      this.oAuthService.tryLogin();
    });
  }

  public auth() {
    this.oAuthService.initImplicitFlow();
  }
}

Когда я нажимаю кнопку «auth», он перенаправляет меня на сервер OID C для авторизации.

Я авторизуюсь, и OID C перенаправляет меня обратно на мой локальный хост.

Затем происходят странные вещи:

Safari вызывает беззвучное обновление. html через ~ 2 se c после авторизации, затем очищает локальное хранилище (только с помощью ключей, использующих эту библиотеку, я имею в виду, если я отправлю sh что-то в локальное хранилище, оно не будет удалено).

Если я очистить файл тихого обновления. html он не очистит локальное хранилище сразу, только через ~ 30 секунд c после запроса тихого обновления. html.

Итак, похоже, что сафари не будет хранить токены в локальном хранилище или хранилище сеансов и пытается очистить его: (

My тихое обновление. html:

<html>
<body>
<script>
  (window.opener || window.parent).postMessage(location.hash || ('#' + location.search), location.origin);
</script>
</body>
</html>

BTW, Chrome не вызывает молчание продлить через ~ 2 с. c после успешной авторизации и без очистки локального хранилища.

Safari v 13.1 MacOS 10.14.6

...