问题遇到的现象和发生背景
keycloak开发微信idp,需求:用户打开商城公众号,跳转kc获取openid,然后携带kc的token进入公众号首页
问题相关代码,请勿粘贴截图
public class WeiXinIdentityProvider extends AbstractOAuth2IdentityProvider<OAuth2IdentityProviderConfig>
implements SocialIdentityProvider<OAuth2IdentityProviderConfig>
/**
* 解析微信用户信息为kc用户
* 8
* @param event
* @param profile
* @return
*/
@Override
protected BrokeredIdentityContext extractIdentityFromProfile(EventBuilder event, JsonNode profile)
{}
/**
* 解析token,获取wx用户信息
* 7
* @param response
* @param wechat 是否微信浏览器
* @return
*/
public BrokeredIdentityContext getFederatedIdentity(String response, boolean wechat)
{
......
context = extractIdentityFromProfile(null, profile);
}
运行结果及报错内容
从日志看,已经成功获取了微信的user,并放入context中
07:16:57,431 INFO [stdout] (default task-1) extractIdentityFromProfile : user : username = 123 , BrokerUserId =123 , ModelUsername =123
07:16:57,431 INFO [stdout] (default task-1) getFederatedIdentity 方法,返回的 context = {id='123', username='123', email='123'}
但是之后,KC一直在循环调用getFederatedIdentity()、authResponse()、callback、authResponse、generateTokenRequest、authResponse()方法
直到这里,超时终止掉
07:16:58,291 WARN [org.keycloak.events] (default task-1) type=IDENTITY_PROVIDER_FIRST_LOGIN_ERROR, realmId=realm, clientId=null, userId=null, ipAddress=192.0.0.0, error=expired_code, restart_after_timeout=true, authSessionParentId=1234, authSessionTabId=1223
请问这是什么原因?需要怎么处理