最近幾天在做微信公共平台開發,之前一切正常運行着,發布一套程序出去之后,發現時不時的報錯!
小總結下問題出現原因:微信oauth2.0 接口說明
第一步:用戶同意授權,獲取code
在確保微信公眾賬號擁有授權作用域(scope參數)的權限的前提下(服務號獲得高級接口后,默認帶有scope參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。
用戶同意授權后
如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。若用戶禁止授權,則重定向后不會帶上code參數,僅會帶上state參數redirect_uri?state=STATE
code說明 : code作為換取access_token的票據,每次用戶授權帶上的code將不一樣,code只能使用一次,5分鍾未被使用自動過期。
問題出現在redirect_uri=REDIRECT_URI引導用戶點擊鏈接該地址的時候,微信會發出兩次轉向至redirect_uri的相同請求,前面一次被線程強制終止,生效的為第二次,而第一次已經發出與微信獲取code的請求
導致微信發出的第二次請求code過期,
ps:為啥第一次回被強制終止?