6

I'm implementing an oAuth server and need to store refresh tokens, to do this I have (at the moment) chosen to serialize the tokens into JSON.

While I can see that the JSON includes everything that would be needed to rehydrate, when I de-serialize with token.FromJson() the embedded claims are not being reconstructed correctly.

So far I've considered inheriting from JsonConverter to create a claims converter but don't see a way of adjusting the global JsConfig to utilise it :(

Can any one point me in a good direction?

andycwk
  • 826
  • 2
  • 9
  • 19

1 Answers1

3

So...

Walking away from the code and returning did the trick!

Instead of using a JsonConverter you need to utilise a generic version of JsConfig when changing/overriding the behaviour of ServiceStack on a specific class, just stick the following in your services start-up code for example.

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]);
  };
andycwk
  • 826
  • 2
  • 9
  • 19