0

我正在使用 Angular 2 框架。我已经设置了我的应用程序路由模块,以便我立即被定向到登录页面(使用路径匹配'full'和redirectTo:'signOn'。我的应用程序路由模块中的所有其他路由都有canActivate: CanActivateViaAuthGuard。这只允许用户导航如果他们已登录,则转到其他链接。这可以正常工作,并且一旦登录,功能就可以了。用户甚至可以退出并返回主页。

但是,如果用户登录然后刷新页面,这在技术上将布尔值(允许他们导航)设置回 false 并尝试拉出根页面localhost:4020,它是空的。如果用户刷新页面,我需要它localhost:4020/signOn像最初那样路由。

有什么建议吗?

我的路径变量中的路由示例:

{ path: '', redirectTo: 'dash', pathMatch: 'full' },
{ path: 'signOn', component: SignOnComponent},
{ path: 'dash', component: 'DashComponent', canActivate: [CanActivateViaAuthGuard]},
{ path: 'admin', component: 'AdminComponent', canActivate: [CanActivateViaAuthGuard]},
4

1 回答 1

0

根据您的描述,您所说this technically sets the boolean的显然会在用户刷新时重置。维护登录状态的推荐方法是使用 Cookie 或会话存储。例如。登录后,您可以在会话存储中添加一个密钥

sessionStorage.setItem('isSignedIn', 1);

并将其检索为

var state = sessionStorage.getItem('isSignedIn');
于 2018-01-29T19:19:57.017 回答