Просмотр модели с примером авторизации - PullRequest
0 голосов
/ 22 января 2019

Я хочу ограничить доступ к просмотру моделей согласно авторизации или JWT. Я нашел примеры для прочитанных моделей, но как правильно реализовать их для моделей представлений?

1 Ответ

0 голосов
/ 22 января 2019

В resolve фреймворке каждая модель представления может иметь собственный сериализатор и десериализатор .Эти функции используются для моделей представления, которые имеют нетривиальный объект состояния, который не может быть автоматически сериализован с помощью JSON.stringify и восстановлен в JSON.parse - например, это полезно для Immutable.JS или seamless-immutable .

Фактически serializer имеет два аргумента - первый - это объект состояния для сериализации, а второй - это токен JWT из invoker.Поскольку view-модель всегда вызывается из текущего клиента, либо HTTP-запрос, либо API-обработчик , токен JWT всегда присутствует и может использоваться для ограничения доступа

const serializeState = (state, jwtToken) => {
    if(jwtToken != null && !isGoodToken(jwtToken)) { // JWT token is present and custom validation failed
        throw new Error('Access denied') 
    }
    return JSON.stringify(state) // Or custom serialize procedure
}
export default serializeState

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

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