在我的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"
}
这是为什么?
这似乎是IdentityServer中的一个错误,可能会在下一个版本(2.2)中修复。
问题:
您提供的代码将结果正确地设置为IResourceOwnerPasswordValidator.ValidateAsync()
方法中的验证上下文。但是,此上下文中的Error属性未用作返回值。因此,将始终返回"invalid_grant"
的默认值。
我提出了一个fix将返回ResourceOwnerPasswordValidationContext
的结果。