使用授权示例查看模型

时间:2019-01-22 11:40:54

标签: resolvejs

我想根据授权或JWT限制对视图模型的访问。我找到了读取模型的示例,但是如何以正确的方式为视图模型实现呢?

1 个答案:

答案 0 :(得分:1)

resolve框架中,每个视图模型都可以拥有自己的serializerdeserializer。这些函数用于具有非平凡状态对象的视图模型,这些视图对象无法由JSON.stringify自动序列化并无法在JSON.parse内还原-例如,对于Immutable.JS或{ {3}}。

实际上seamless-immutable有两个参数-第一个是用于序列化的状态对象,第二个参数是调用者的JWT令牌。由于视图模型始终是从当前客户端(HTTP请求或serializer)调用的,因此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存在且无效,则可以引发错误以限制访问。