我收到无效的授权码{“ code”:“ MyTestCode”},
以下是更详细的错误:
无效的授权码{“ code”:“ MyTestCode”},详细信息:{“ ClientId”:“ AuthorizationCodeClientFlow”,“ ClientName”:“ Authorization Code Client”,“ GrantType”:“ authorization_code”,“ Scopes”:null,“ AuthorizationCode “:” MyTestCode“,” RefreshToken“:null,” UserName“:null,” AuthenticationContextReferenceClasses“:null,” Tenant“:null,” IdP“:null,” Raw“:{” grant_type“:” authorization_code“,”代码”:“ MyTestCode”,“ redirect_uri”:“ https:// localhost:5000 / oauth / callback”,“ client_id”:“ AuthorizationCodeClientFlow”},“ $ type”:“ TokenRequestValidationLog”}
这是从此代码生成的客户端:
{
ClientName = "Authorization Code Client",
ClientId = "AuthorizationCodeClientFlow",
AllowedGrantTypes = GrantTypes.Code,
ClientSecrets =
{
new Secret("AuthorizationCodeClientFlowSecret".Sha512())
},
AllowedScopes =
{
"all"
},
RedirectUris =
new List<string> {
"https://localhost:5000/oauth/callback"
},
AllowOfflineAccess = false,
AccessTokenLifetime = 60
};
https:// localhost:5105 / oauth / authorize工作正常。我在https:// localhost:5105 / oauth / token步骤中收到错误。当我验证这样的请求时:
var form = (await _httpContextAccessor.HttpContext.Request.ReadFormAsync()).AsNameValueCollection();
var validationResult = await _requestValidator.ValidateRequestAsync(form, clientResult);
if (validationResult.IsError)
{
return new IdpTokenResponse
{
Custom = new Dictionary<string, object>
{
{ "Error", validationResult.Error },
{ "ErrorDescription", validationResult.ErrorDescription }
}
};
}
答案 0 :(得分:0)
您需要获取从初始身份验证请求中收到的授权码,然后将其从令牌端点获取令牌时传递给它。
一个不相关的事情是,在对IdentityServer进行身份验证时,应始终要求 openid 范围,“全部”或“”无效。