위챗 페이지 권한 부여 코드가 여러 번 리셋을 요청하는 구덩이
2985 단어 위챗 공식계정 개발
권한 부여 페이지에서 처음 쓰기 시작한 위챗 권한 부여 링크:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx5250b8b9d4cfdf76&redirect_uri=(code를 업무 controller로 직접 리셋) &responsetype=code&scope=snsapi_userinfo&state=state#wechat_redirect';
제가 직접 테스트를 했을 때 전혀 문제가 없었어요. 그리고 동료를 불러서 같이 테스트를 했는데 문제가 생겼어요...그때 그건 멍청한 얼굴이었어...
내가 가서 위챗 개발 문서를 잘 봤는데 쓸모 있는 소식을 찾지 못했어...인터넷에 검색해 봤는데 코드 요청이 여러 번 되돌아온다고...원격 debug를 켜고 몇 바퀴 돌았는데 정말 잠깐이었어요. 코드로 오픈아이드 쪽에서 잘못 보고했어요. 이렇게 해서 제가 받은 업무 코드를 실행할 수가 없어요.
//=====================아래 코드는 보지 않아도 됩니다===============================
멱을 만들면 돼요.
===============================================================================
그리고 코드를 다시 개조하기 시작했습니다. 진정한 업무 컨트롤러에 도착하기 전에 중간 컨트롤러(이것은 리셋된 코드를 얻고 오픈 Id를 가져오는 것)를 먼저 가다가 진정한 업무 컨트롤러로 방향을 바꾸었습니다.
수정된 코드
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx5250b8b9d4cfdf76&redirect_uri=(code를 중간 controller로 직접 리셋) &responsetype=code&scope=snsapi_userinfo&state=state#wechat_redirect';
중간 컨트롤러
@RequestMapping("xxxxx")
public void accreditBack(String data, Model model,HttpServletRequest request,HttpServletResponse response) throws Exception{
String code = request.getParameter("code");
String publishId = request.getParameter("state");
String contextPath = request.getContextPath();//
String url=contextPath+"/xxxx";
if(!StringUtils.isEmpty(code)){
WxCommoneUtils wxCommoneUtils =new WxCommoneUtils();
//String openId = wxCommoneUtils.getOpenId(code);
JSONObject wxUserInfo = wxCommoneUtils.getWxUserInfo(code);
String openId = wxUserInfo.getString("openid");
String headImgUrl = wxUserInfo.getString("headimgurl");//
// BASE64Encoder be =new BASE64Encoder();
// String encode = be.encode(headImgUrl.getBytes());
// String string = encode.replaceAll(" ", "");
url=url+"?"openId="+openId+"&headImgUrl="+headImgUrl;
}
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location",url);
//
response.setHeader( "Connection", "close" );
response.setHeader( "Pragma", "no-cache" );
response.addHeader( "Cache-Control", "must-revalidate" );
response.addHeader( "Cache-Control", "no-cache" );
response.addHeader( "Cache-Control", "no-store" );
response.setDateHeader("Expires", 0);
}
진정한 업무 컨트롤러
@RequestMapping(value="xxxxxxxx")
public String fxDetails( String openId, String headImgUrl,Model model,HttpSession session,HttpServletResponse response) throws IOException {
return "xxxxxxx";
}
return "xxxxxxx";}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
위챗 페이지 권한 부여 코드가 여러 번 리셋을 요청하는 구덩이이전 프로젝트에서 위챗 권한을 부여받아야 했는데 저도 처음 사용했습니다. 위챗 개발 문서를 보고 썼는데 구덩이에 빠졌습니다. 권한 부여 페이지에서 처음 쓰기 시작한 위챗 권한 부여 링크: https://open.we...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.