private static final String qqOpenIdGetUrl = "https://graph.qq.com/oauth2.0/me"; public static String getOpenId(String accessToken) { Map<String, String> param = new HashMap<>(); param.put("access_token", accessToken); String rsp = HttpInvokeUtil.httpGet(qqOpenIdGetUrl, param); if (rsp == null) { throw new BusinessException(ResultEnum.ACCOUNT_QQ_TOKEN_ERROR); } logger.info("getOpenId:{}", rsp); //callback( {"client_id":"101790512","openid":"6189BEAB0227B1B548723866BEC1C9A8"} ); String result = rsp.replace("callback( ", "").replace(" );", ""); QQCallback callback = JSON.parseObject(result, QQCallback.class); if (callback == null || StringUtils.isEmpty(callback.getOpenid())) { throw new BusinessException(ResultEnum.ACCOUNT_QQ_TOKEN_ERROR); } return callback.getOpenid(); } public static void checkOpenId(String openId, String accessToken) { //accessToken 为空是不校验 if (StringUtils.isEmpty(accessToken)) { return; } if (!openId.equals(getOpenId(accessToken))) { throw new BusinessException(ResultEnum.ACCOUNT_QQ_TOKEN_ERROR); } }
QQ第三方登陆校验
最新推荐文章于 2024-04-21 02:00:00 发布