0
votes

Le bouton de connexion ne se redirige pas du tableau de bord

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;
  }

}


2 commentaires

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


3 Réponses :


0
votes

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é.


3 commentaires

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.



0
votes

Si la connexion répond positif, vous devez mettre à jour vos données / état de votre application En ce qui concerne la condition, vous avez utilisé AuthGuard pour empêcher la redirection du tableau de bord sans vous connecter

Avant d'appeler this.router.navigater (['"tableau de bord']);

J'espère que cela aide


0 commentaires

2
votes

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é. xxx

peut vérifier cette pièce à nouveau?


0 commentaires