我正在实现一个 oAuth 服务器并且需要存储刷新令牌,为此我(目前)选择将令牌序列化为 JSON。
虽然我可以看到 JSON 包含重新水化所需的所有内容,但当我使用 token.FromJson() 反序列化时,嵌入的声明没有被正确重建。
到目前为止,我已经考虑从 JsonConverter 继承来创建声明转换器,但没有看到调整全局 JsConfig 以利用它的方法:(
任何人都可以为我指明一个好的方向吗?
我正在实现一个 oAuth 服务器并且需要存储刷新令牌,为此我(目前)选择将令牌序列化为 JSON。
虽然我可以看到 JSON 包含重新水化所需的所有内容,但当我使用 token.FromJson() 反序列化时,嵌入的声明没有被正确重建。
到目前为止,我已经考虑从 JsonConverter 继承来创建声明转换器,但没有看到调整全局 JsConfig 以利用它的方法:(
任何人都可以为我指明一个好的方向吗?
所以...
离开代码并返回就行了!
在更改/覆盖特定类上 ServiceStack 的行为时,您需要使用通用版本的 JsConfig 而不是使用 JsonConverter,只需将以下内容粘贴到您的服务启动代码中即可。
JsConfig<Claim>.SerializeFn = claim => string.Format("{0}|{1}", claim.Type, claim.Value);
JsConfig<Claim>.DeSerializeFn = claimDetails =>
{
var values = claimDetails.Split('|');
return new Claim(values[0], values[1]);
};