OWIN中OAuthAuthorizationServer的自定义响应

Kah*_*azi 5 c# asp.net oauth-2.0 owin katana

我需要为令牌生成生成自定义响应 OAuthAuthorizationServer

默认的resposne是这样的

{
  "access_token": "***access_token***",
  "token_type": "bearer",
  "expires_in": 119,
  ".issued": "Mon, 31 Oct 2016 11:20:50 GMT",
  ".expires": "Mon, 31 Oct 2016 11:22:50 GMT"
}
Run Code Online (Sandbox Code Playgroud)

如何生成此输出而不是默认输出?

{
  "message": "Token Granted",
  "data": 
    {
      "Token": "***access_token***"
    },
  "messageCode": 200
}
Run Code Online (Sandbox Code Playgroud)

小智 0

这个问题类似于How to edit token endpoint response body with Owin OAuth2 in Asp.Net Web API 2

请看我的回答。

此外,您可以解析响应 json 而不是使用字符串,例如:

public async Task Invoke(HttpContext context)
{
    ...
    // parse json
    var bodyJson = JObject.Parse(bodyString);

    // do something with json inner objects
    bodyJson = ...

    // update the memory stream
    var bytes = Encoding.UTF8.GetBytes(bodyJson.ToString());
    ...
}
Run Code Online (Sandbox Code Playgroud)