pushboy 2022-01-05 16:58 采纳率: 80%
浏览 65
已结题

keycloak集成微信登录,无限循环错误,如何解决?

问题遇到的现象和发生背景

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

请问这是什么原因?需要怎么处理

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 1月13日
    • 创建了问题 1月5日

    悬赏问题

    • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
    • ¥20 怎么用dlib库的算法识别小麦病虫害
    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?