gpt4 book ai didi

c# - Web API授权access_token验证

转载 作者:太空狗 更新时间:2023-10-29 21:22:27 24 4
gpt4 key购买 nike

现在我正在使用 OAUTH2.0 进行授权。我想做我自己的授权服务器(WEB API)。我有一个 Dummy MVC 项目来测试这个。我成功地使用“SimpleAuthorizationServerProvider”在服务器(WEB API)中创建了一些访问 token 。我必须调用一些 API 调用但应该授权。这样我就可以用我的 token 发送这个电话了。

https://localhost/Profile?access_token=...

或者可以通过header发送access_token。从我这边来说,现在已经可以了。但是我需要在服务器端验证这个 access_token。我可以从客户端(虚拟 MVC 项目)获取访问 token 。

private static TokenResponse GetToken()
{
var client = new OAuth2Client(new Uri("http://localhost:2727/token"),"client1", "secret");
var response = client.RequestResourceOwnerPasswordAsync("bob", "bob").Result;
return response;
}

但无法理解它是从服务器端创建的。以及我们可以在服务器端(Web API)验证 access_token 的地方。我读了很多书,但仍然很困惑。请帮我。谢谢!!

最佳答案

您无需担心服务器端的访问 token 。服务器端的访问 token 由 Katana 中间件解析和验证。如果您需要有关如何创建/使用访问 token 的更多详细信息,请在 Katana sources 中搜索 DeserializeTicket 和 SerializeTicket 方法。 ,您会发现这些方法与 Token 结合使用,以序列化/反序列化您在客户端(DummyMVC)传递的 ClaimsIdentity。

无论如何,您使用的是 Embedded AuthorizationServer Thinktecture 项目中的 SimpleAuthorizationServerProvider,它是 OAuthAuthorizationServerProvider 的包装器。我对吗?我相信您想验证凭据。在您的情况下,您可以覆盖 GrantResourceOwnerCredentials。

    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
// validate user credentials (demo!)
// user credentials should be stored securely (salted, iterated, hashed yada)
if (context.UserName != context.Password)
{
context.Rejected();
return;
}
context.Validated();
}

如果您查看Thinktecture examples,那将是最好的.

关于c# - Web API授权access_token验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23403483/

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