错误的GrantValidationResult错误

问题描述 投票:1回答:1

在我的IResourceOwnerPasswordValidator中

if (!user.PhoneNumberConfirmed)
{
    context.Result = new GrantValidationResult(TokenRequestErrors.InvalidScope, "Phone number not verified");
    return;
}

当我使用未验证手机nb的用户连接时,我得到以下响应。

{
    "error": "invalid_grant",
    "error_description": "Phone number not verified"
}

这是为什么?

.net authentication asp.net-core identityserver4
1个回答
0
投票

这似乎是IdentityServer中的一个错误,可能会在下一个版本(2.2)中修复。

问题:

您提供的代码将结果正确地设置为IResourceOwnerPasswordValidator.ValidateAsync()方法中的验证上下文。但是,此上下文中的Error属性未用作返回值。因此,将始终返回"invalid_grant"的默认值。

我提出了一个fix将返回ResourceOwnerPasswordValidationContext的结果。

© www.soinside.com 2019 - 2024. All rights reserved.