gpt4 book ai didi

identityserver4 - 在 identityserver4 和自定义 AuthorizationHandler User.Identity.isAuthenticated = false 上使用客户端凭据流

转载 作者:行者123 更新时间:2023-12-04 12:59:28 24 4
gpt4 key购买 nike

嗨,我正在使用身份服务器 4,我创建了一个使用 client_credentials 进行保护的客户端

我可以使用 clientid 和 secret 检索 token ,并且根据 jwt.io,访问 token 的到期时间为 3600 秒或(1 小时)

在网络核心 2.2 api 上,我有一个自定义 AuthorizationHandler

protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ClientCredentialRequirement requirement)
{

if (requirement.AllowedClients != null && requirement.AllowedClients.Any()) {

if (context.User.Identity.IsAuthenticated) { // this is false
context.Succeed(requirement);
return Task.CompletedTask;
}

使用客户端凭据时,这是否应该返回 false?我期待它是真的,因为 token 是有效的

最佳答案

所以我想通了。

事实证明,该应用程序是一个功能齐全的“idserver”加上已经配置了 cookie 身份验证的“mvc 网站”这一事实导致了我的问题。

对 api 的请求没有声明,因为未使用承载身份验证方案来处理请求。

我必须将它添加到 api Controller 才能按预期工作。

[Authorize(AuthenticationSchemes = "Bearer")]
public class MixedController : Controller

如详细 here

现在,即使使用客户端凭据,User.Identity 声明现在也填充了来自 token 的声明和范围,并且 User 显示为 Authenticated = true

关于identityserver4 - 在 identityserver4 和自定义 AuthorizationHandler User.Identity.isAuthenticated = false 上使用客户端凭据流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60462057/

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