繁体   English   中英

WSO2 Oauth2身份验证-提供的授权授予无效

[英]WSO2 Oauth2 Authentication - Provided Authorization Grant is invalid

我正在将Oauth 2.0与Python登录应用程序一起测试WSO2身份服务器。 我成功地通过了获取请求代码的步骤1之后,从另一个IdP服务器调整的例程在令牌授权步骤中引发了错误。 从WSO2服务器返回的错误是:

“提供的授权授予无效”

控制台日志

*** start of login ***
Code received = 23618215e0ee701b973f548a3f8e7dda
Token Request Answered = <Response [400]>
Token Request Text = {"error":"invalid_grant","error_description":"Provided Authorization Grant is invalid."}
Token Request URL = https://extbasicpacman05.podc.sl.edst.red.com:9443/oauth2/token
Token Request Encoding = None

码:

#print "Send Token Request now"    
# prepare lookup of token using code as input
verify='/home/claudef/tmp/oauth_2/oauth/wso2.pem'
url  = "https://extbasicpacman05.podc.sl.edst.red.com:9443/oauth2/token"
payload = { 'client_id': client_id, 'client_secret': client_secret, 'grant_type': 'authorization_code', 'code': str(code), 'redirect_uri': 'http://localhost/resources/oauth2Callback' }
urllib.urlencode(payload)
headers = { 'application' : 'x-www-form-urlencoded' } 
r = requests.post(url, data=payload, headers=headers, verify=verify)
print "Token Request Answered = " + str(r)  
print "Token Request Text = " + str(r.text) 
print "Token Request URL = " + str(r.url)
print "Token Request Encoding = " + str(r.encoding)

任何有关如何使用代码值修复授权授予的提示都欢迎。

刚刚确定了错误原因,实际上是编码错误,因为回调URL包含缺少的端口定义。 我已将语句更正为新设置,并且令牌已从WSO2服务器成功返回。 问题已经解决了。

错误消息“无效授权”令人困惑,可能是对未来改进的建议。

verify='/home/claudef/tmp/oauth2/oauth/wso2.pem'
url  = "https://extbasicpacman05.podc.sl.edst.red.com:9443/oauth2/token"
payload = { 'client_id': client_id, 'client_secret': client_secret, 'grant_type': 'authorization_code', 'code': str(code), 'redirect_uri': 'http://localhost:8080/resources/oauth2Callback'}
urllib.urlencode(payload)
headers = { 'application' : 'x-www-form-urlencoded' } 
r = requests.post(url, data=payload, headers=headers, verify=verify)  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM