使用angularfire2和firebase的Angular 5身份验证应用.该应用程序可以使用应用程序内链接进行精确导航,例如在登录后重定向到仪表板或通过应用程序中的按钮/链接链接到另一个页面(组件).但是,如果在" http:// localhost:4300/dashboard "页面上我点击了浏览器刷新(Chrome),它会将我重定向回登录页面.在浏览器上使用BACK/NEXT工作正常 - 但我想因为我并没有特别要求去特定的路线.
我有一个NavBar,通过使用订阅,识别我是否登录(见右上方截图...) - 这一切都正常.
我猜测在浏览器刷新或直接URL导航时,它会在确定我是否已经过身份验证之前尝试加载页面.开发控制台从我插入导航栏组件的console.log语句中建议这一点,并且在Angular核心建议我们以开发模式运行之前它们是"未定义"的事实:
app.routes:
import { Routes, RouterModule } from '@angular/router';
import { LoginComponent } from './views/login/login.component';
import { DashboardComponent } from './views/dashboard/dashboard.component';
import { ProfileComponent } from './views/profile/profile.component';
import { AuthGuard } from './services/auth-guard.service';
const appRoutes: Routes = [
{
path: '',
component: LoginComponent
},
{
path: 'dashboard',
canActivate: [AuthGuard],
component: DashboardComponent
},
{
path: 'profile',
canActivate: [AuthGuard],
component: ProfileComponent
},
{
path: '**',
redirectTo: ''
}
];
export const AppRoutes …Run Code Online (Sandbox Code Playgroud)