Я создал сайт 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>
)}
/>
);
};
В своей базе данных я отслеживаю, какие курсы принадлежат определенному учителю. Как сделать маршрут защищенным для всех, кроме учителя, который создал определенный курс?