我使用Spark和pac4j构建了一个简单的Web应用程序 . 它应该使用OAuth 2 "Authorization Code Grant"使用WSO2 Identity Server 5.0.0对用户进行身份验证 .
OAuth流似乎工作正常,但不完全:
-
用户被重定向到WSO2(
/oauth2/authorize?response_type=code&client_id=foo&redirect_uri=bar&scope=openid&prompt=consent
) -
用户使用用户名/密码进行识别
-
用户同意与我的网络应用程序交换声明
-
我的webapplication交换它收到的代码以获取访问令牌和刷新令牌
However ,最后pac4j使用访问令牌检索用户配置文件( /oauth2/userinfo?schema=openid
) . 这总是给我回应
{"error":"invalid_token","error_description":"Access token validation failed"}
和WSO2记录
TID:[0] [IS] [2018-03-14 16:20:30,446] DEBUG - org.wso2.carbon.identity.oauth . endpoint.user.UserInfoEndpointException:访问令牌验证失败
访问令牌仍存在于 IDN_OAUTH2_ACCESS_TOKEN
数据库表中:
TIME_CREATED VALIDITY_PERIOD TOKEN_STATE TOKEN_STATE_ID
------------------------------------------------------------------
2018-03-14 10:40:35.940 3600000 ACTIVE NONE
我不明白为什么WSO2说我的访问令牌无效 .
任何人都可以对此有所了解吗?
1 回答
好吧,奇怪的是......在WSO2数据库中删除所有访问令牌和授权令牌解决了这个问题 .