即使我正在尝试访问另一个页面,Angular 也会不断将我重定向到登录页面

堆栈sssss

我有一个网站,它分为用户可以访问的普通页面和只能由管理员访问的另一个页面(即ngx-admin)。

因此,为了阻止用户访问管理仪表板,我设置了一个身份验证保护,它将用户重定向到登录页面,如果他们的凭据错误,它会将他们重定向到网站的主页,但出于某种原因,无论何时我尝试访问主页或其他任何我总是被重定向到登录页面。

这是我的应用程序路由模块:

import { ExtraOptions, RouterModule, Routes } from '@angular/router';
import { NgModule } from '@angular/core';
import {
NbAuthComponent,
NbLoginComponent,
NbLogoutComponent,
NbRegisterComponent,
NbRequestPasswordComponent,
NbResetPasswordComponent,
} from '@nebular/auth';
import { AuthGuard } from './auth-guard.service';
import { HomeComponent } from './Home/home.component';
import { OffreAComponent } from './offrea/offrea.component';
const routes: Routes = [
{path: 'home', component: HomeComponent},
{path: 'offreappel', component: OffreAComponent},
{ path: 'users', loadChildren: 'app/pages/pages.module#PagesModule', canActivate: [AuthGuard]},
{
path: 'auth',
component: NbAuthComponent,
children: [
  {
    path: '',
    component: NbLoginComponent,
  },
  {
    path: 'login',
    component: NbLoginComponent,
  },
  {
    path: 'register',
    component: NbRegisterComponent,
  },
  {
    path: 'logout',
    component: NbLogoutComponent,
  },
  {
    path: 'request-password',
    component: NbRequestPasswordComponent,
  },
  {
    path: 'reset-password',
    component: NbResetPasswordComponent,
  },
],
 },
{ path: '**', pathMatch: 'full', redirectTo: 'users'},
];
const config: ExtraOptions = {
useHash: true,
};

 @NgModule({
 imports: [RouterModule.forRoot(routes, config)],
 exports: [RouterModule],
 })
 export class AppRoutingModule {
 }

这是我的 AuthGuard 服务:

import { Injectable } from '@angular/core';
import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { NbAuthService } from '@nebular/auth';
import { tap } from 'rxjs/operators';

@Injectable()
export class AuthGuard implements CanActivate {
constructor(private authService: NbAuthService, private router: Router) {}

canActivate() {
return this.authService.isAuthenticated().pipe(
    tap(authenticated => {
        if (!authenticated) {
            this.router.navigate(['auth/login']);
        }
    }),
);
}}
丹尼尔·皮涅罗

你有一个重定向users路由错误。

   { path: '**', pathMatch: 'full', redirectTo: 'users'},

所以每次你走错路时,它都会重定向到:

{ path: 'users', loadChildren: 'app/pages/pages.module#PagesModule', canActivate: [AuthGuard]}

我会考虑添加一个带有默认路由的页面,并且当路由与重定向到该页面不匹配时:

{ path: '', component: HomeComponent},
{ path: '**', pathMatch: 'full', redirectTo: ''},

要注意的另一件事是检查您是否真的需要useHash. 这仅对某些环境是必需的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使我看到的页面未受保护,Spring登录也会将我重定向到登录页面

来自分类Dev

可点击的div,将我重定向到另一个HTML页面

来自分类Dev

flask_login @login_required登录后继续将我重定向到登录页面

来自分类Dev

登录脚本将我重定向回登录页面

来自分类Dev

成功登录后,我尝试将用户重定向到另一个页面(homeDemo.php),但它似乎没有重定向。我正在使用php

来自分类Dev

将我的主 GitHub 页面重定向到我的另一个存储库

来自分类Dev

点击后如何将我重定向到另一个页面,同时开始倒数

来自分类Dev

Laravel Auth :: attempt()始终将我重定向到登录页面

来自分类Dev

当我按登录按钮将我重定向到登录页面时,我的代码有什么问题?

来自分类Dev

即使登录后,Django也会重定向到登录页面

来自分类Dev

html警报不断将我的页面重定向到index.html,我希望它仅显示警报

来自分类Dev

angularjs当我刷新页面时,它会将我重定向到登录页面

来自分类Dev

当我尝试重定向到另一个页面时,出现此异常java.lang.IllegalStateException

来自分类Dev

如何将我的注册页面从表单身份验证重定向到登录页面中排除

来自分类Dev

将我的jsp表单重定向到成功页面

来自分类Dev

Angularjs 路由将我重定向到默认页面

来自分类Dev

要求地图将我定向到Grails的登录页面

来自分类Dev

YouTube不断将我重定向到一个奇怪的地址:“ youtube.xcdn.app”

来自分类Dev

如何301重定向-将我网站的所有网址都重定向到一个页面

来自分类Dev

我想检查网址是否重定向到R中的另一个页面

来自分类Dev

我想检查网址是否重定向到R中的另一个页面

来自分类Dev

我如何 onSubmit 将 api 调用的结果重定向到另一个页面?

来自分类Dev

为什么我无法使用 JQuery 和 PHP 将我的数据提交到我的数据库,以及为什么我的页面不断重定向到主页?

来自分类Dev

错误:我的控制器将我重定向到另一个URL

来自分类Dev

当我尝试重定向到 laravel 5.6 中的另一个页面时,出现“抱歉,找不到您要查找的页面”之类的错误。

来自分类Dev

HTTPS将我重定向到另一个网站

来自分类Dev

HTTPS将我重定向到另一个网站

来自分类Dev

使用Google登录后重定向到另一个页面-Firebase Web

来自分类Dev

如果未登录,将用户重定向到另一个页面?

Related 相关文章

  1. 1

    即使我看到的页面未受保护,Spring登录也会将我重定向到登录页面

  2. 2

    可点击的div,将我重定向到另一个HTML页面

  3. 3

    flask_login @login_required登录后继续将我重定向到登录页面

  4. 4

    登录脚本将我重定向回登录页面

  5. 5

    成功登录后,我尝试将用户重定向到另一个页面(homeDemo.php),但它似乎没有重定向。我正在使用php

  6. 6

    将我的主 GitHub 页面重定向到我的另一个存储库

  7. 7

    点击后如何将我重定向到另一个页面,同时开始倒数

  8. 8

    Laravel Auth :: attempt()始终将我重定向到登录页面

  9. 9

    当我按登录按钮将我重定向到登录页面时,我的代码有什么问题?

  10. 10

    即使登录后,Django也会重定向到登录页面

  11. 11

    html警报不断将我的页面重定向到index.html,我希望它仅显示警报

  12. 12

    angularjs当我刷新页面时,它会将我重定向到登录页面

  13. 13

    当我尝试重定向到另一个页面时,出现此异常java.lang.IllegalStateException

  14. 14

    如何将我的注册页面从表单身份验证重定向到登录页面中排除

  15. 15

    将我的jsp表单重定向到成功页面

  16. 16

    Angularjs 路由将我重定向到默认页面

  17. 17

    要求地图将我定向到Grails的登录页面

  18. 18

    YouTube不断将我重定向到一个奇怪的地址:“ youtube.xcdn.app”

  19. 19

    如何301重定向-将我网站的所有网址都重定向到一个页面

  20. 20

    我想检查网址是否重定向到R中的另一个页面

  21. 21

    我想检查网址是否重定向到R中的另一个页面

  22. 22

    我如何 onSubmit 将 api 调用的结果重定向到另一个页面?

  23. 23

    为什么我无法使用 JQuery 和 PHP 将我的数据提交到我的数据库,以及为什么我的页面不断重定向到主页?

  24. 24

    错误:我的控制器将我重定向到另一个URL

  25. 25

    当我尝试重定向到 laravel 5.6 中的另一个页面时,出现“抱歉,找不到您要查找的页面”之类的错误。

  26. 26

    HTTPS将我重定向到另一个网站

  27. 27

    HTTPS将我重定向到另一个网站

  28. 28

    使用Google登录后重定向到另一个页面-Firebase Web

  29. 29

    如果未登录,将用户重定向到另一个页面?

热门标签

归档