2016-07-04 2 views
0

Я использую реактивный маршрутизатор и думаю об использовании auth. Я хотел бы перехватить большинство запросов и проверить, разрешен ли пользователь, а если нет, перенаправлять их.React Router - примените те же функции onEnter по маршрутам

Способ, которым я планирую это сделать, заключается в использовании крюка onEnter в компоненте Route. Вместо того, чтобы добавлять эту функцию onEnter почти к каждому маршруту, существует ли простой способ применить это поведение по всем маршрутам и «отказаться» от тех, к которым это поведение не относится?

ответ

1

Я создал персональный маршрут между группой частных маршрутов.

<Route component={Authorization} accessRoles={['admin', 'registered']}> ... This routes which need to authorization ... </Route>

Я также отправить accessRoles компоненту авторизации для проверки роли.

+0

Хорошо. И в вашем компоненте авторизации, какую функцию hook/function вы реализуете для перенаправления, если пользователь не авторизован? Вы делаете это в функции render()? – Ben

+0

Я создал функциональность на cdm/cwrp 'checkAuth (реквизит) { const {accessRoles} = props.route; if (! CheckAuth (accessRoles, props.auth)) { history.pushState (null, '/ signin? Next =' + props.location.pathname); } } ' – inthedark122

Смежные вопросы