сделать доступным только для администратора на веб-сайте с помощью Angual

#angularjs #authentication #admin

#angularjs #аутентификация #администратор

Вопрос:

У меня есть несколько компонентов на моем «веб-сайте магазина». Есть один компонент, который должен быть доступен только для администратора. В локальном хранилище есть токен isAdmin. Теперь я реализовал, что специальный компонент отображается только на домашнем сайте, когда администратор входит в систему. Но идентификатор, который вы вводите, указывает на ссылку этого компонента (http://localhost:4200/Authorize ) это показывает всем. Как я могу реализовать, что он должен быть доступен только для администраторов.

Ответ №1:

Вы должны использовать canActivate в определении маршрутов.

 @NgModule({
  imports: [
    RouterModule.forRoot([
      {
        path: 'team/:id',
        component: TeamComponent,
        canActivate: [AuthGuard]
      }
    ])
  ],
})
  

Вы можете создавать пользовательские условия как AuthGuard:

 @Injectable()
export class AuthGuard implements CanActivate {

  constructor(
  ) {}

  canActivate() {
    if (somthing) {
      return true;
    } else {
      this.router.navigate(['/login']);
      return false;
    }
  }
  

Проверьте документацию https://angular.io/api/router/CanActivate