gpt4 book ai didi

c# - Asp.Net Core 2 验证不记名 token

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

我正在努力寻找一种验证我的 OAuth bearer token 的确切方法,该 token 是在将请求发送到正在处理的 API 时传递的,该 API 是一个 Asp.Net core 项目。

此处的目的是提取不记名 token 并对其进行验证,如果一切正常,则继续请求。

到目前为止,我的发现如下

  • JWT 承担 token 授权,主要涉及 access_token

  • Asp.Net核心安全中间件

  • 处理此问题的自定义授权属性。

我不太确定如何实现验证?我应该提取不记名 token 然后创建自定义验证方法吗?

理想情况下希望 [Authorize] 属性来处理此问题。

请问有什么建议吗?

最佳答案

最后,经过更多研究,我终于发现自定义 AuthorizationHandler 是一个更合适的解决方案,因为假设使用自定义 Authorize 属性,这在 Asp.Net Core 中不建议。

设置很简单,我可以从 header 中提取我的 Bearer token ,以便使用 OAuth 进行进一步授权。

这是我的方法:

public class CustomAuthorizationHandler: IAuthorizationHandler
{
public Task HandleAsync(AuthorizationHandlerContext context)
{
var authFilterCtx = (Microsoft.AspNetCore.Mvc.Filters.AuthorizationFilterContext)context.Resource;
string authHeader = authFilterCtx.HttpContext.Request.Headers["Authorization"];
if (authHeader != null && authHeader.Contains("Bearer"))
{
var token = authHeader.Replace("Bearer", "");
// Now token can be used for further authorization
}

throw new NotImplementedException();
}
}

最后在 Startup.cs 中注册处理程序

public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IAuthorizationHandler, CustomAuthorizationHandler>();
}

关于c# - Asp.Net Core 2 验证不记名 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56953715/

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