我使用 firebase 和 AngularFireAuthGuard 来保护特定的路由,这样只有经过身份验证的用户才能访问它们。特别是,我的 MainComponent 和 MgmtComponent 应该只能由 AUTHENTICATED 用户访问。
const redirectUnauthorizedToLogin = () => redirectUnauthorizedTo(['/login']);
const routes: Routes = [
{ path: 'teams/:teamId/sessions/:sessionId',
component: MainComponent,
canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectUnauthorizedToLogin }
},
{ path: 'mgmt',
component: MgmtComponent,
canActivate: [AngularFireAuthGuard], data: { authGuardPipe: redirectUnauthorizedToLogin }
},
{
path: 'login',
component: LoginComponent
}
];
我的问题是,成功登录后,用户没有被重定向回最初请求的 URL。所以我想要/期望的是:
- 用户去
/mgmt
- 由于用户未通过身份验证,他会自动重定向到
/login
- 用户身份验证(例如通过 google 或 Facebook OAuth)
- 用户被自动重定向回最初请求的页面 (
/mgmt
)
步骤 1-3 工作正常,但缺少步骤 4。