gpt4 book ai didi

asp.net - 如何在 Asp.Net Web API 2 中使用 Owin OAuth2 修改 token 端点响应正文

转载 作者:行者123 更新时间:2023-12-02 02:44:16 25 4
gpt4 key购买 nike

我想修改 token 端点响应的响应正文。

我尝试使用 MessageHandler 拦截 /Token 请求,但没有成功。

我可以通过重写 OAuthAuthorizationServerProvider.TokenEndpoint 方法向响应添加一些附加信息,但我无法创建自己的响应正文。

有办法拦截/Token请求吗?

<小时/>

编辑

我找到了如何从 token 端点响应中删除响应正文内容,如下所示:HttpContext.Current.Response.SuppressContent = true;

这似乎是实现我的目标的正确方法,但现在当我使用 context.AdditionalResponseParameters.Add() 方法添加自定义信息时,SuppressContent block 任何更改。

现在我有这样的东西:

// Removing the body from the token endpoint response
HttpContext.Current.Response.SuppressContent = true;
// Add custom informations
context.AdditionalResponseParameters.Add("a", "test");

最佳答案

要简单地将新项目添加到 JSON token 响应,您可以使用 TokenEndpointResponse 而不是 TokenEndpoint 通知。

<小时/>

如果您正在寻找一种方法将 OAuth2 授权服务器准备的 token 响应完全替换为您自己的 token 响应,遗憾的是没有简单的方法可以做到这一点,因为 OAuthAuthorizationServerHandler.InvokeTokenEndpointAsync 不支持调用 TokenEndpointResponse 通知后检查 OAuthTokenEndpointContext.IsRequestCompleted 属性。

https://github.com/aspnet/AspNetKatana/blob/dev/src/Microsoft.Owin.Security.OAuth/OAuthAuthorizationServerHandler.cs

这是一个已知问题,但当我建议修复它时,将其包含在 Katana 3 中已经太晚了。

您应该尝试一下 Owin.Security.OpenIdConnect.Server:它是为 Katana 3.0 和 4.0 设计的 OAuthAuthorizationServerMiddleware 的一个分支。

https://www.nuget.org/packages/Owin.Security.OpenIdConnect.Server/1.0.2

当然,它包括正确的检查以允许绕过默认 token 请求处理(这甚至是我在 fork 它时修复的第一件事之一)。

关于asp.net - 如何在 Asp.Net Web API 2 中使用 Owin OAuth2 修改 token 端点响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com