Auth0 Angular-无法匹配任何路由

时间:2020-03-10 22:36:25

标签: javascript angular typescript rxjs auth0

我有一个有角度的应用程序,正在尝试与Auth0集成。我遵循了这两个教程:

https://auth0.com/docs/quickstart/spa/angular2/01-login

https://auth0.com/docs/quickstart/spa/angular2/02-calling-an-api

这是我的项目的设置:

AuthService

复制并粘贴自第一个教程链接

LoginController

export class LoginComponent implements OnInit {

  constructor(private authService: AuthService) { }

  ngOnInit(): void {
      this.authService.login();
  }
}

应用程序路由模块

const routes: Routes = [
    { path: 'login', component: LoginComponent },
    { path: 'profile', component: ProfileComponent, resolve: { queues: ProfileResolver}, canActivate: [AuthGuard]}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: InterceptorService,
      multi: true
    }
  ]
})
export class AppRoutingModule { }

我已经成功登录,但是当auth0进行回调时,它导航到http://localhost:4200/profile?code=[code]&state=[state],然后Angular抛出“无法匹配任何路由”。

我的问题是:

  1. 代码和状态参数分别用于什么?
  2. 我该怎么做才能正确处理这些问题,以便我的网站可以正确路由到/ profile?

谢谢!

1 个答案:

答案 0 :(得分:0)

这是auth0-spa-js上的一个令人讨厌的陷阱,给我的生产带来了很大的麻烦。 this thread中对此问题进行了描述。我如何解决的是从以下位置更改auth服务中handleAuthCallback函数的最后一行:

this.router.navigate([targetRoute])

收件人:

this.router.navigate([name-of-path-you're-redirecting-to])