首页 文章

为什么在受保护的页面上刷新会将我重定向到root,而不是我指定的重定向?

提问于
浏览
0

我正在使用Angular 2框架 . 我已经设置了我的app-routing模块,以便我立即被引导到页面上的一个登录(使用pathmatch 'full'和redirectTo:'signOn' . 我的app-routing模块中的所有其他路由都有 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]},

1 回答

  • 0

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

    sessionStorage.setItem('isSignedIn', 1);
    

    并将其检索为

    var state = sessionStorage.getItem('isSignedIn');
    

相关问题