我尝试在请求后使用隐式授权类型在WSO2上的应用程序中生成访问令牌:
POST /token HTTP/1.1
Host: localhost:8243
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
Postman-Token: d6ef6038-9860-bdc6-3867-70af98b37cc6
grant_type=code&response_type=implicit&client_id=CLIENT_ID&redirect_uri=http%3A%2F%2Flocalhost%3A8888%2Fplayground%2Foauth2client&scope=default
请求返回此错误:
{
"error_description": "Invalid grant_type parameter value",
"error": "invalid_request"
}
这是我的授权类型设置:
为什么会发生此错误,但设置包含隐式授权类型?
答案 0 :(得分:1)
我认为你混淆了一些事情。如果您想使用Implicit grant,则不要使用/token
端点 - 您可以从授权端点获取所有内容。请求可能如下所示:
/auth?response_type=token&client_id=...&redirect_uri=...
并且在成功进行身份验证后,客户端会立即获取访问令牌,作为重定向URL的一部分。
如果您有代码并且想要将其替换为访问令牌和刷新令牌,那么您使用的是Authorization code grant。然后,正确的grant_type
值为authorization_code
,您必须在code
网址参数中指定代码。因此,您收到的错误消息是正确的。
最后,token
端点没有response_type
参数。它是authrization endpoint的一个参数,隐式流的正确值是token
,因为您希望返回一个访问令牌。