avoir un problème. Connexion Services Vérifiez si le mot de passe incorrect ou correct, mais le routeur de navigation ne fonctionne actuellement pas correctement. Il me manque quelque chose, pouvez-vous faire valoir ce que signifie exactement?
git: https://github.com/ Tyroniua / auth- p>
Fonction responsable de la redirection. P>
import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; import { AuthService } from "../../shared/services/auth.service"; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate { constructor( public authService: AuthService, public router: Router ){ } canActivate( next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean { if(this.authService.isLoggedIn !== true) { this.router.navigate(['sign-in']) } return true; } }
3 Réponses :
Vous avez défini Authgaurd pour "tableau de bord" et que vous redirigeez l'utilisateur à la route du tableau de bord, même l'utilisateur déjà déconnecté, soit vous devez supprimer AuthGuard pour une route de tableau de bord ou créer une page d'accueil distincte pour l'utilisateur invité. P>
Salut oui. Le problème est avec la configuration d'AuthGuard. Mise à jour du message d'origine avec le script d'authentification. Mais comment puis-je suivre si l'utilisateur déconnecté et non entré Email + Mot de passe?
L'utilisateur déconnecté et non entré Email / Mot de passe, signifie? Je n'ai pas compris la question?
Il vérifie actuellement si l'utilisateur s'est déconnecté. Si oui - rediriger à la signature de la page. Mais lorsque l'utilisateur signer, il vérifie à nouveau si l'utilisateur s'est déconnecté. C'est donc un peu boucle. Comment vérifier alors si l'utilisateur déconnecté, mais entré Email + Mot de passe et ils sont valides => Rediriger au tableau de bord. Je n'ai pas clairement cette authentification à l'heure actuelle.
Si la connexion répond positif, vous devez Avant d'appeler J'espère que cela aide p> this.router.navigater (['"tableau de bord']); code> p>
Je pense qu'il n'y a pas de problème avec votre logique de flux de travail d'authentification.
Mais je suppose que vous avez fait des erreurs sur cette fonction.AuthService.Loggedin. Cela semble toujours revenir faux.
C'est pourquoi cela semble boucler le processus encore, mais ne vous êtes pas réellement connecté. P> peut vérifier cette pièce à nouveau? P> p>
Sur un Sidenote > Bloque la plus probablement la navigation.
Mais si je désactive la protection, tout le monde peut accéder au tableau de bord sans connexion