当前位置:首页

企業微信網頁授權(Java基於微信公眾號接口實現授權登錄源碼及原理分析)

发布时间:2025-07-04 15:54:07   来源:广东河源紫金县    
字号:

微信公眾號授權登錄操作前提必須注冊微信公眾平台賬號,注意的是訂閱號不支持授權登錄操作,因此對於個人開發者注冊的訂閱號是無法實現的,必須注冊企業號的微信平台賬號而具體注冊流程就不詳細介紹了,有什麽疑問可去微信公眾號平台查看具體的文檔。

企業微信網頁授權(Java基於微信公眾號接口實現授權登錄源碼及原理分析)

接下來講述一下具體的微信授權登錄流程,打開微信開發文檔官網(https://mp.weixin.qq.com/wiki),“微信網頁開發”中找到“微信網頁授權”,其中詳細介紹了微信授權登錄實現,如圖:

AppId和AppSecret參數見下圖:

網頁授權流程分為四步:

1、引導用戶進入授權頁麵同意授權,獲取code

2、通過code換取網頁授權access_token(與基礎支持中的access_token不同)

3、如果需要,開發者可以刷新網頁授權access_token,避免過期

4、通過網頁授權access_token和openid獲取用戶基本信息(支持UnionID機製)

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

其中參數appid、redirect_uri、response_type、scope、state,具體說明如下圖:

注意:當scope為snsapi_base(靜默授權) ,就不會彈出授權頁麵;而scope為snsapi_userinfo(手動授權)時,是彈出授權頁麵的,可以獲取用戶的相關信息。

微信授權有兩種網頁授權方式

第一種靜默授權:不會給登錄用戶任何提示直接返回用戶code,但如果登錄用戶存在關注公眾號的情況下,無法拿到登錄用戶的全部信息

以snsapi_base為scope發起的網頁授權,是用來獲取進入頁麵的用戶的openid的,並且是靜默授權並自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁麵)

第二種手動授權:彈出授權頁麵,登錄用戶點擊確定後可獲取登錄用戶的信息

以snsapi_userinfo為scope發起的網頁授權,是用來獲取用戶的基本信息的。但這種授權需要用戶手動同意,並且由於用戶同意過,所以無須關注,就可在授權後獲取該用戶的基本信息。

參考案例:

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

手動授權 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

步驟二:通過code值獲取網頁授權access_token票據

登錄用戶每次授權所攜帶的code都不一樣,code隻能使用一次,5分鍾自動過期。

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

其中參數appid、secret、code、grant_type,具體說明如下圖:

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

由於access_token擁有較短的有效期,當access_token超時後,可以使用refresh_token進行刷新,refresh_token有效期為30天,當refresh_token失效之後,需要用戶重新授權。

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

獲取用戶信息網頁授權作用域為snsapi_userinfo,此時開發者可以通過access_token和openid獲取用戶信息。具體鏈接如下:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

其中參數access_token、openid、lang,具體說明如下圖:

具體實現微信公眾號授權登錄代碼,通過填寫的回調url進入我們的後台登錄調用方法

源碼參考資料:http://blog.yoodb.com/yoodb/article/detail/1324

如果登錄成功授權之後會返回正確的json格式數據,反之失敗返回相對應的錯誤碼。進群248148860,對互聯網技術感興趣的朋友們,歡迎關注公眾號“優哉遊哉”。涵蓋:程序人生、搞笑視頻、算法與數據結構、黑客技術與網絡安全、前端開發、Java、Python、Redis緩存、Spring源碼、各大主流框架、Web開發、大數據技術、Storm、Hadoop、MapReduce、Spark、elasticsearch、單點登錄統一認證、分布式框架、集群、安卓開發、iOS開發、C/C 、.NET、Linux、Mysql、Oracle、NoSQL非關係型數據庫、運維等。

本文到此結束,希望對大家有所幫助呢。

图说天下

×
{dede:qrcode/}

推荐文章

友情链接