Comment puis-je passer un JWT dans une application Angular 4, enregistrer le jeton, puis naviguer vers la page d'accueil? J'essaie la syntaxe suivante mais je suis inquiet que le recours à ngAfterViewInit
est pas la bonne façon de le faire ...Transférer JWT dans Angular 4 app/Rediriger après avoir sauvé JWT
import { Component, OnInit, OnDestroy, AfterViewInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-xfer',
templateUrl: './xfer.component.html',
styleUrls: ['./xfer.component.css']
})
export class XferComponent implements OnInit, OnDestroy {
sub: any
constructor(private route: ActivatedRoute, private router: Router) { }
ngOnInit() {
this.sub = this.route
.queryParams
.subscribe(params => {
localStorage.setItem('currentUser', JSON.stringify({
token : params['jwt']
}))
});
}
ngOnDestroy(){
this.sub.unsubscribe();
}
ngAfterViewInit(){
this.router.navigate(['/']);
}
}
Mon but est d'appeler cette URL d'une autre application comme ceci:
http://myapp.com/x?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
Depuis ma page d'accueil, et le reste de l'application, utilise un AuthGuard
, invite à la connexion se passerait si nécessaire.