1、通過微信開放平臺(tái)
2、通過認(rèn)證的微信服務(wù)號(hào)
3、通過認(rèn)證的微信訂閱號(hào)
4、通過微信小程序曲線救國

今天我們" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > PHP微信公眾號(hào)網(wǎng)頁授權(quán)登錄 掃碼登錄 獲取用戶基本信息

PHP微信公眾號(hào)網(wǎng)頁授權(quán)登錄 掃碼登錄 獲取用戶基本信息

時(shí)間:2022-07-24 01:39:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2022-07-24 01:39:01 來源:網(wǎng)站運(yùn)營

前言

現(xiàn)在微信登錄是一個(gè)網(wǎng)站、APP的標(biāo)配,所以微信授權(quán)登錄是我們應(yīng)該要掌握的。微信授權(quán)登錄有4種方式:

1、通過微信開放平臺(tái)
2、通過認(rèn)證的微信服務(wù)號(hào)
3、通過認(rèn)證的微信訂閱號(hào)
4、通過微信小程序曲線救國

今天我們就講解的是微信服務(wù)號(hào),通過OAuth2.0機(jī)制網(wǎng)頁授權(quán)登錄,獲取用戶基本信息。

流程

1、獲取code
2、獲取access_token
3、獲取用戶基本信息

獲取code

通過以下接口即可獲得,參數(shù)說明:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 以上鏈接進(jìn)行配置后,進(jìn)行點(diǎn)擊訪問或跳轉(zhuǎn)。

配置例子:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=你公眾號(hào)的APPID&redirect_uri=你服務(wù)器的接收code的頁面鏈接&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect 點(diǎn)擊允許,將會(huì)開始獲取code,并且跳轉(zhuǎn)到你的redirect_uri,redirect_uri就是你要接收code的頁面。

redirect_uri代碼可以這樣寫,getcode.php

<?phpheader("Content-type:text/html;charset=utf-8");$code = $_GET["code"];echo $code;?>例如你的服務(wù)器域名是http://www.abc.com,你的代碼放在服務(wù)器的wx目錄下,那么你的redirect_uri應(yīng)該是

http://www.abc.com/wx/getcode.php最后,你在微信內(nèi)點(diǎn)擊上面獲取code的鏈接,那么就會(huì)彈窗問你是否允許獲取用戶信息的了。

允許后,就跳轉(zhuǎn)到getcode.php進(jìn)行下一步的操作。

獲取access_token

通過以下接口可以獲得,參數(shù)說明:







https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code上面所需的參數(shù)基本都有,APPID、APPSECRET是你服務(wù)號(hào)的,CODE上面已經(jīng)獲取到了,那么直接請求接口,就能獲得access_token了。

下面getcode.php頁面的:

<?phpheader("Content-type:text/html;charset=utf-8");$code = $_GET["code"];$appid = "你公眾號(hào)的APPID";$appsecret = "你公眾號(hào)的APPSECRET";$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code ";//發(fā)起請求$getopenid = file_get_contents($url);$getopenid_arr = json_decode($getopenid, true);$openid = $getopenid_arr["openid"];$access_token = $getopenid_arr["access_token"];?>以上代碼直接就可以返回openid和access_token了,接下來直接通過另一個(gè)接口,就可以獲得用戶基本信息。

獲取用戶基本信息(頭像、昵稱)

通過以下接口即可獲得,參數(shù)說明:







https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN代碼我就不上了,跟上面的請求方式是一樣的。

掃碼登錄實(shí)現(xiàn)流程

我們上一步獲得的access_token需要進(jìn)行緩存,因?yàn)樗菚?huì)失效的,我們應(yīng)該進(jìn)行緩存到服務(wù)器或者數(shù)據(jù)庫,openid也是要儲(chǔ)存到數(shù)據(jù)庫。

1、在儲(chǔ)存到數(shù)據(jù)庫前,先查詢數(shù)據(jù)庫是否存在這個(gè)用戶的openid,如果有,直接更新這個(gè)用戶的信息,并且返回登錄成功。如果沒有,則初始化一條數(shù)據(jù)進(jìn)去。

2、然后瀏覽器輪詢這條數(shù)據(jù)的登錄狀態(tài),如果用戶掃碼登錄,獲得頭像和昵稱,那么就把頭像和昵稱更新到剛才初始化的數(shù)據(jù)當(dāng)中,如果還沒有掃碼登錄,則一直在輪詢,直到掃碼登錄后就停止輪詢,建議設(shè)置一個(gè)過期時(shí)間,防止輪詢時(shí)間過長造成服務(wù)器的不良。

更多學(xué)習(xí)內(nèi)容請?jiān)L問:

以上內(nèi)容希望幫助到大家,很多PHPer在進(jìn)階的時(shí)候總會(huì)遇到一些問題和瓶頸,業(yè)務(wù)代碼寫多了沒有方向感,不知道該從那里入手去提升,對此我整理了一些資料,包括但不限于:分布式架構(gòu)、高可擴(kuò)展、高性能、高并發(fā)、服務(wù)器性能調(diào)優(yōu)、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優(yōu)化、shell腳本、Docker、微服務(wù)、Nginx等多個(gè)知識(shí)點(diǎn)高級(jí)進(jìn)階干貨需要的可以免費(fèi)分享給大家,需要的可以加入我的官方群點(diǎn)擊此處。

關(guān)鍵詞:用戶,信息,基本,獲取,授權(quán),公眾

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉