国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 微信開(kāi)發(fā)網(wǎng)頁(yè)授權(quán)

瀏覽:142日期:2022-09-27 13:58:26

問(wèn)題描述

在授權(quán)成功的頁(yè)面刷新一次就會(huì)出報(bào)錯(cuò){'errmsg':'code been used, hints: [ req_id: Rwakxa0262th10 ]','errcode':40163}

問(wèn)題解答

回答1:

這個(gè)問(wèn)題我解決。大概是這么一會(huì)兒事兒。微信授權(quán)的時(shí)候,微信官方讓你用一個(gè)引導(dǎo)地址(A.action)去重定向到另外一個(gè)地址(B.action),在第二個(gè)地址(B.action)中可以獲取code,用code換取access_token,refresh_token等。多半情況是第一次能拿到用戶信息,但是第二次刷新的時(shí)候,提示errcode':40163,'errmsg':'code been used。說(shuō)明code被使用過(guò)一次了,官方文檔說(shuō)的很清楚,code只能用一次。當(dāng)然不管你有沒(méi)有刷新,只要你是用的code是同一個(gè),而且不是第一次使用就會(huì)報(bào)上面的錯(cuò)誤。我是這么解決的,在B.action中先去判斷session中是否存在code換取到的access_token和refresh_token等(最好是封裝成實(shí)體對(duì)象,比較好判斷),如果不存在說(shuō)明code首次被使用(之前頁(yè)面被關(guān)閉了),如果存在則去session中直接獲取access_token或者是refresh_token。用獲得的access_token和refresh_token去獲取用戶信息。希望我說(shuō)的對(duì)你有幫助!

回答2:

提示很清楚code已經(jīng)被使用了,code只能被使用一次。

回答3:

你授權(quán)的處理部分有問(wèn)題,授權(quán)拿到用戶信息之后就保存到session里面去 你授權(quán)之后沒(méi)有保存到session中,導(dǎo)致刷新頁(yè)面后,session中沒(méi)有用戶信息,但是地址中還帶有code參數(shù),于是就拿著code去拿授權(quán),但是這個(gè)code已經(jīng)用過(guò)了,code只能用一次的

回答4:

是這樣,OAuth2.0的授權(quán)URI指定參數(shù)有類似response type,authorization code,state之類的,你調(diào)用微信OAuth2.0授權(quán)接口,傳入了各種appid appsecret,就是為了獲取authorization code用的,這個(gè)code干嘛的呢,是第三方(也就是你,用戶授權(quán)你訪問(wèn)他在微信的資源)用來(lái)和OAuth授權(quán)服務(wù)器換取AccessToken用的,也就是調(diào)用我開(kāi)篇講的授權(quán)URI使用的參數(shù),在OAuth2.0規(guī)范里,該URI返回的參數(shù)包括AccessToken,RefreshToken等等,有了這個(gè)AccessToken,你就可以用它和資源服務(wù)器進(jìn)行驗(yàn)證從而拿到用戶資源了,那么OAuth2.0規(guī)定了,為了安全,這個(gè)authorization code只能換取一次AccessToken。

那么微信是怎么實(shí)現(xiàn)的呢,他們的授權(quán)接口包括了response type,redirect uri,state,appid,appsecret等參數(shù),他們的邏輯就是用戶先調(diào)用這個(gè)授權(quán)接口,然后進(jìn)行授權(quán)(或靜默授權(quán)),當(dāng)用戶確定授權(quán)后,此時(shí)調(diào)用的仍然是微信授權(quán)接口,微信授權(quán)服務(wù)器確認(rèn)授權(quán)后,將請(qǐng)求重定向至你設(shè)定的redirect uri,并且在這個(gè)uri中添加URL參數(shù)code及state,這個(gè)code就是authorization code,于是你的服務(wù)器就會(huì)通過(guò)這次重定向收到authorization code,你就可以用這個(gè)code去換取AccessToken,進(jìn)而獲取到用戶在微信的各種資源了(比如open id)。

所以你說(shuō)為什么刷新報(bào)錯(cuò),我嚴(yán)重懷疑你刷新的是你自己服務(wù)器的url,然后你的代碼又獲取了一次相同的code,再去兌換,當(dāng)然就報(bào)錯(cuò)code重復(fù)使用了。

回答5:

關(guān)注一下,是否連續(xù)進(jìn)行了兩次請(qǐng)求(使用同樣code換取用戶信息),導(dǎo)致第二次使用該code出現(xiàn)該錯(cuò)誤

回答6:

你點(diǎn)過(guò)微信支付了嗎,那個(gè) 支付 按鈕只能點(diǎn)一次,調(diào)起來(lái)支付后,如果取消支付,再去點(diǎn)擊 支付,就報(bào)錯(cuò)了,只能退出當(dāng)前頁(yè)面,重新進(jìn)!

回答7:

樓主解決 了嗎,我也遇到同樣的問(wèn)題了 ?

標(biāo)簽: 微信
相關(guān)文章:
主站蜘蛛池模板: 午夜三级a三级三点在线观看 | 日韩欧美视频一区二区 | 欧美老头老太做爰xxxx | 久久中文字幕久久久久91 | 久久精品国产亚洲7777小说 | 成人在线精品视频 | 久久国产免费观看 | 日本aaaa片毛片免费观看 | 精品国产一区二区三区免费看 | 国产乱子伦露脸对白在线小说 | 午夜毛片不卡高清免费 | 夜色www国产精品资源站 | 久草在线影| 91精品国产薄丝高跟在线看 | 日韩欧美成人乱码一在线 | 久久精品视频6 | 国产精品v在线播放观看 | 久久综合久久综合九色 | 国产一区二区三区影院 | 国产亚洲免费观看 | 91九色偷拍| 毛片美国基地 | 色婷婷久久综合中文久久蜜桃 | 日韩特级毛片 | 欧美成人性动漫在线观看 | 午夜宅男宅女看在线观看 | 欧美日韩亚洲综合在线一区二区 | 分享一个无毒不卡免费国产 | 国内精品91最新在线观看 | 亚洲欧美综合一区二区三区四区 | 国内精品久久久久影院老司 | 亚洲手机看片 | 成人18免费软件 | 久久综合九九亚洲一区 | 免费看成人| 99在线观看精品 | 日韩精品在线观看免费 | 一级床上爽高清播放 | 韩国美女一区二区 | 在线观看免费黄色网址 | 欧美成人性色xxxxx视频大 |