Angularfire 2 использует AngularFireAuthGuard для отображения содержимого на основе ролей - PullRequest
0 голосов
/ 11 июня 2019

Можно ли использовать новые Angularfire2 охранники (AngularFireAuthGuard) для проверки пользовательских утверждений пользователя (https://firebase.google.com/docs/auth/admin/custom-claims) для отображения контента?

У меня есть кнопка типа "Изменить статью ", которую я просто хочу отобразить для пользователей, у которых есть пользовательская заявка" редактор ".

Я хочу что-то подобное, но для отображения контента не для контроля доступа к маршруту:

// This pipe will only allow users with the editor role to access the route
// { path: 'articles/:id/edit', component: ArticleEditComponent, ...canActivate(editorOnly) }
const editorOnly = pipe(customClaims, map(claims => claims.role === "editor"));

1 Ответ

0 голосов
/ 12 июня 2019

Если вы не используете это для контроля доступа к маршруту, то вы не должны использовать AuthGuards. Попробуйте что-то вроде этого в сочетании с * ngIf или * ngSwitch:

firebase.auth().currentUser.getIdTokenResult()
  .then((idTokenResult) => {
     // Confirm the user is an Admin.
     if (!!idTokenResult.claims.admin) {
       // Show admin UI.
       showAdminUI();
     } else {
       // Show regular user UI.
       showRegularUI();
     }
  })
  .catch((error) => {
    console.log(error);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...