gpt4 book ai didi

c# - PostAsync to/Token 返回内部服务器错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:53 26 4
gpt4 key购买 nike

我有一个 web Api,它有一个到 Startup.Auth 中的登录 token 设置的路由,如下所示:

        PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
AllowInsecureHttp = false
};

这应该将我的 api 登录请求路由到这里:

    [OverrideAuthentication]
[HostAuthentication(DefaultAuthenticationTypes.ExternalCookie)]
[AllowAnonymous]
[Route("ExternalLogin", Name = "ExternalLogin")]
public async Task<IHttpActionResult> GetExternalLogin(string provider, string error = null)
{
Authorize stuff...
}

我正在尝试从我的客户端登录并获取访问 token :

        var loginResponse = await client.PostAsync("/Token", loginContent);

使用登录内容:

        var values = new Dictionary<string, string>();
values.Add("grant_type", "password");
values.Add("username", "usernamehere");
values.Add("password", "passwordhere");
var loginContent = new FormUrlEncodedContent(values);

当我尝试进入 PostAsync to/Token 以取回 access_token 时,我总是会收到内部服务器错误。我什至无法进入 api 以查看发生了什么。

如果我从 api 方法中删除 [Authorize] 装饰,我可以取回我的数据......我只是无法登录。

如果我转到浏览器并将以下内容放入 url 中进行测试...

 https://localhost:44305/Token

我收到 (400) 错误请求。不确定接下来要尝试什么。

我必须让 Token Auth 正常工作……没有安全性就无法发布。 ;)

更新:

我应该补充一点,我正在使用自定义 UserStore 进行身份验证。

更新 2:客户端

    public static HttpClient GetClient()
{

HttpClient Client = new HttpClient();

Client.BaseAddress = new Uri(Ics2Constants.ICS2APIBaseAddress);
Client.DefaultRequestHeaders.Accept.Clear();
Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

return Client;
}

然后使用:

using (var client = ICS2HttpClient.GetClient())
{
//TESTING:
await ICS2HttpClient.Authenticate(client);

//... more stuff after authentication
}

Authenticate 包含 PostAsync...

最佳答案

Authorize 属性不应放在任何获取 token 的方法之上它应该是匿名的

关于c# - PostAsync to/Token 返回内部服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30629912/

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