Как создать защищенный маршрут в React, доступный только подмножеству пользователей? - PullRequest
0 голосов
/ 10 апреля 2020

Я создал сайт React, который включает аутентификацию. Сайт состоит из двух типов пользователей: студентов и преподавателей. Мне удалось успешно создать отдельные маршруты для учителей и студентов. Однако проблема аутентификации возникает у пользователей одного типа. Я хочу, чтобы только учитель, создавший курс, имел доступ к представлению, связанному с этим курсом. Например: т.е. www.school.com/course/: id, студенты не могут получить доступ к этому маршруту, однако учитель другого курса может получить доступ к этому маршруту, если у него есть URL.

Вот как мне удается защитить маршрут от студентов:

const TeacherRoute = props => {
  const { layout: Layout, component: Component, auth:{role,loading},...rest } = props;

  return (
    <Route
      {...rest}
      render={matchProps =>
        role !== 'teacher' && !loading ? (
          <Redirect to='/sign-in' />
          )
        :(
        <Layout>
          <Component {...matchProps} />
        </Layout>
      )}
    />
  );
};

В своей базе данных я отслеживаю, какие курсы принадлежат определенному учителю. Как сделать маршрут защищенным для всех, кроме учителя, который создал определенный курс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...