【问题标题】:Call every time typescript file whenever page reload or url change happened每当页面重新加载或 url 更改发生时,每次调用 typescript 文件
【发布时间】:2018-01-05 13:17:18
【问题描述】:

我需要在我的 Angular 5 应用程序中实现一个会话。我想写一个 ts 文件,基本上,这个 ts 文件验证用户是否登录。每当页面重新加载或 URL 更改发生时,我想每次调用这个 ts 文件。如何实施?

【问题讨论】:

标签: angular typescript session login angular5


【解决方案1】:

使用AuthGuard

创建一个 auth-guard.service.ts。

import { Injectable } from '@angular/core';
import { CanActivate, CanActivateChild } from '@angular/router';

@Injectable()
export class AuthGuard implements CanActivate, CanActivateChild {

  canActivate() {
    console.log('i am checking to see if you are logged in');
    return true;
  }

  canActivateChild() {
    console.log('checking child route access');
    return true;
  }

}

之后在你的路由文件中:

export const appRoutes: Routes = [
  {
    path: 'dashboard',
    children: [
      {
        path: '',
        canActivate: [AuthGuard],
        component: DashboardComponent
      },
      {
        path: 'users',
        component: DashboardUsersComponent,
        canActivateChild: [AuthGuard],
        children: [
          {
            path: '',
            component: DashboardUsersHomeComponent
          },
          {
            path: ':username',
            component: DashboardUserDetailsComponent,
            canDeactivate: [CanDeactivateGuard]
          }
        ]
      }
    ]
  }
]; 

下面是一些参考链接。

https://scotch.io/courses/routing-angular-2-applications/canactivate-and-canactivatechild

https://www.concretepage.com/angular-2/angular-2-4-route-guards-canactivate-and-canactivatechild-example

https://ryanchenkie.com/angular-authentication-using-route-guards

【讨论】:

  • 此答案仅取决于不鼓励在 SO 上使用的链接文章。请在答案中包含解决方案的要点。
  • 编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 2016-09-15
  • 2018-01-23
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多