溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

發(fā)布時(shí)間:2021-11-15 16:01:23 來(lái)源:億速云 閱讀:200 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

微信公眾號(hào)授權(quán)登錄操作前提必須注冊(cè)微信公眾平臺(tái)賬號(hào),注意的是訂閱號(hào)不支持授權(quán)登錄操作,因此對(duì)于個(gè)人開(kāi)發(fā)者注冊(cè)的訂閱號(hào)是無(wú)法實(shí)現(xiàn)的,必須注冊(cè)企業(yè)號(hào)的微信平臺(tái)賬號(hào)而具體注冊(cè)流程就不詳細(xì)介紹了,有什么疑問(wèn)可去微信公眾號(hào)平臺(tái)查看具體的文檔。

接下來(lái)講述一下具體的微信授權(quán)登錄流程,打開(kāi)微信開(kāi)發(fā)文檔官網(wǎng)(https://mp.weixin.qq.com/wiki),“微信網(wǎng)頁(yè)開(kāi)發(fā)”中找到“微信網(wǎng)頁(yè)授權(quán)”,其中詳細(xì)介紹了微信授權(quán)登錄實(shí)現(xiàn),如圖:

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

AppIdAppSecret參數(shù)見(jiàn)下圖:

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

網(wǎng)頁(yè)授權(quán)流程分為四步:

1、引導(dǎo)用戶進(jìn)入授權(quán)頁(yè)面同意授權(quán),獲取code 

2、通過(guò)code換取網(wǎng)頁(yè)授權(quán)access_token(與基礎(chǔ)支持中的access_token不同) 

3、如果需要,開(kāi)發(fā)者可以刷新網(wǎng)頁(yè)授權(quán)access_token,避免過(guò)期 

4、通過(guò)網(wǎng)頁(yè)授權(quán)access_token和openid獲取用戶基本信息(支持UnionID機(jī)制) 

步驟一:首先需要獲取code,具體發(fā)送鏈接如下:https://open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

其中參數(shù)appid、redirect_uri、response_type、scope、state,具體說(shuō)明如下圖:

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

注意:當(dāng)scope為snsapi_base(靜默授權(quán)) ,就不會(huì)彈出授權(quán)頁(yè)面;而scope為snsapi_userinfo(手動(dòng)授權(quán))時(shí),是彈出授權(quán)頁(yè)面的,可以獲取用戶的相關(guān)信息。

微信授權(quán)有兩種網(wǎng)頁(yè)授權(quán)方式

第一種靜默授權(quán):不會(huì)給登錄用戶任何提示直接返回用戶code,但如果登錄用戶存在關(guān)注公眾號(hào)的情況下,無(wú)法拿到登錄用戶的全部信息

以snsapi_base為scope發(fā)起的網(wǎng)頁(yè)授權(quán),是用來(lái)獲取進(jìn)入頁(yè)面的用戶的openid的,并且是靜默授權(quán)并自動(dòng)跳轉(zhuǎn)到回調(diào)頁(yè)的。用戶感知的就是直接進(jìn)入了回調(diào)頁(yè)(往往是業(yè)務(wù)頁(yè)面)

第二種手動(dòng)授權(quán):彈出授權(quán)頁(yè)面,登錄用戶點(diǎn)擊確定后可獲取登錄用戶的信息

以snsapi_userinfo為scope發(fā)起的網(wǎng)頁(yè)授權(quán),是用來(lái)獲取用戶的基本信息的。但這種授權(quán)需要用戶手動(dòng)同意,并且由于用戶同意過(guò),所以無(wú)須關(guān)注,就可在授權(quán)后獲取該用戶的基本信息。 

參考案例:

靜默授權(quán) https://open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

手動(dòng)授權(quán) https://open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

步驟二:通過(guò)code值獲取網(wǎng)頁(yè)授權(quán)access_token票據(jù)

登錄用戶每次授權(quán)所攜帶的code都不一樣,code只能使用一次,5分鐘自動(dòng)過(guò)期。

https://api.weixin.qq.com/sns/oauth3/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

其中參數(shù)appid、secret、code、grant_type,具體說(shuō)明如下圖:

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

步驟三:刷新access_token(如果需要)

由于access_token擁有較短的有效期,當(dāng)access_token超時(shí)后,可以使用refresh_token進(jìn)行刷新,refresh_token有效期為30天,當(dāng)refresh_token失效之后,需要用戶重新授權(quán)。

步驟四:拉取用戶信息(需scope為 snsapi_userinfo)

獲取用戶信息網(wǎng)頁(yè)授權(quán)作用域?yàn)閟nsapi_userinfo,此時(shí)開(kāi)發(fā)者可以通過(guò)access_token和openid獲取用戶信息。具體鏈接如下:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

其中參數(shù)access_token、openid、lang,具體說(shuō)明如下圖:

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

具體實(shí)現(xiàn)微信公眾號(hào)授權(quán)登錄代碼,通過(guò)填寫(xiě)的回調(diào)url進(jìn)入我們的后臺(tái)登錄調(diào)用方法

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的

如果登錄成功授權(quán)之后會(huì)返回正確的json格式數(shù)據(jù),反之失敗返回相對(duì)應(yīng)的錯(cuò)誤碼。

看完上述內(nèi)容,你們對(duì)Java基于微信公眾號(hào)接口實(shí)現(xiàn)授權(quán)登錄源碼及原理分析是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI