【问题标题】:View model with the authorization example查看带有授权示例的模型
【发布时间】:2019-06-15 21:04:54
【问题描述】:

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

【问题讨论】:

    标签: resolvejs


    【解决方案1】:

    resolve 框架中,每个视图模型都可以拥有自己的serializerdeserializer。这些函数用于具有非平凡状态对象的视图模型,它们不能被JSON.stringify 自动序列化并在JSON.parse 内恢复 - 例如,它对Immutable.JSseamless-immutable 很有用。

    事实上serializer 有两个参数——第一个是用于序列化的状态对象,第二个参数是来自调用者的 JWT 令牌。由于视图模型总是从当前客户端调用,无论是 HTTP 请求还是API handler,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 存在且无效,则会抛出错误以限制访问。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2016-02-08
      • 2012-02-22
      • 2018-09-13
      • 1970-01-01
      • 2021-12-09
      相关资源
      最近更新 更多