Как сделать массив ролей по умолчанию динамическим в системе авторизации ролей Fuse React? ⇐ Javascript
-
Гость
Как сделать массив ролей по умолчанию динамическим в системе авторизации ролей Fuse React?
В нашем проекте мы используем шаблон Fuse React. В этом шаблоне маршруты генерируются из файлов конфигурации отдельных маршрутов. Когда происходит генерация, в каждый маршрут встраивается массив ролей по умолчанию. Это означает, что если маршрут /dashboard имеет массив ролей, например ['admin','staff'], и если роль пользователя — «пользователь», то этому пользователю не предоставляется доступ к /dashboard. Генерация маршрута происходит при первой загрузке приложения.
здесь используются сгенерированные маршруты. он импортирован из файла конфигурации ниже.
console.log('routes: ', маршруты); const App = () => { возвращаться ( ); }; экспортировать приложение по умолчанию; И это основной файл конфигурации, в который для всех маршрутов встроено свойство аутентификации.
const defaultAuth = ['суперадмин', 'админ', 'персонал', 'пользователь']; константные маршруты = [ ...FuseUtils.generateRoutesFromConfigs(routeConfigs, defaultAuth), //Этот метод встраивает { путь: '/', точно: правда, авторизация: '', компонент: () => }, { путь: '/панель мониторинга', точно: правда, авторизация: '', компонент: () => }, { компонент: () => } ]; экспортировать маршруты по умолчанию; Проблема: когда пользователь входит в систему, я получаю идентификатор из токена. Затем, используя этот идентификатор, я получаю массивы, которые показывают мне, какие маршруты предоставили доступ к каким ролям. Проблема в том, что эти маршруты генерируются до входа пользователя в систему, поэтому я не могу получить идентификатор. Мне нужно получить логин пользователя перед созданием маршрута и использовать его/ее идентификатор, чтобы получить массив ролей и сгенерировать маршруты на основе этого массива. Есть идеи, как этого добиться?
Что я пробовал: я пытался переместить AppContext.Provider на более низкие уровни, и это, конечно, не сработало. Я ожидал сгенерировать маршруты после авторизации, но поскольку компонент входа не сгенерировался, он вообще не открылся.
В нашем проекте мы используем шаблон Fuse React. В этом шаблоне маршруты генерируются из файлов конфигурации отдельных маршрутов. Когда происходит генерация, в каждый маршрут встраивается массив ролей по умолчанию. Это означает, что если маршрут /dashboard имеет массив ролей, например ['admin','staff'], и если роль пользователя — «пользователь», то этому пользователю не предоставляется доступ к /dashboard. Генерация маршрута происходит при первой загрузке приложения.
здесь используются сгенерированные маршруты. он импортирован из файла конфигурации ниже.
console.log('routes: ', маршруты); const App = () => { возвращаться ( ); }; экспортировать приложение по умолчанию; И это основной файл конфигурации, в который для всех маршрутов встроено свойство аутентификации.
const defaultAuth = ['суперадмин', 'админ', 'персонал', 'пользователь']; константные маршруты = [ ...FuseUtils.generateRoutesFromConfigs(routeConfigs, defaultAuth), //Этот метод встраивает { путь: '/', точно: правда, авторизация: '', компонент: () => }, { путь: '/панель мониторинга', точно: правда, авторизация: '', компонент: () => }, { компонент: () => } ]; экспортировать маршруты по умолчанию; Проблема: когда пользователь входит в систему, я получаю идентификатор из токена. Затем, используя этот идентификатор, я получаю массивы, которые показывают мне, какие маршруты предоставили доступ к каким ролям. Проблема в том, что эти маршруты генерируются до входа пользователя в систему, поэтому я не могу получить идентификатор. Мне нужно получить логин пользователя перед созданием маршрута и использовать его/ее идентификатор, чтобы получить массив ролей и сгенерировать маршруты на основе этого массива. Есть идеи, как этого добиться?
Что я пробовал: я пытался переместить AppContext.Provider на более низкие уровни, и это, конечно, не сработало. Я ожидал сгенерировать маршруты после авторизации, но поскольку компонент входа не сгенерировался, он вообще не открылся.
Мобильная версия