国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

網(wǎng)頁授權(quán)獲取用戶信息的方法

Y2J
發(fā)布: 2017-05-11 13:02:32
原創(chuàng)
2519人瀏覽過

獲取用戶信息步驟如下:

1 第一步:用戶同意授權(quán),獲取code
2 第二步:通過code換取網(wǎng)頁授權(quán)access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用戶信息(需scope為 snsapi_userinfo)

1 獲取code

在確保微信公眾賬號(hào)擁有授權(quán)作用域(scope參數(shù))的權(quán)限的前提下(服務(wù)號(hào)獲得高級(jí)接口后,默認(rèn)擁有scope參數(shù)中的snsapi_base和snsapi_userinfo),引導(dǎo)關(guān)注者打開如下頁面:

open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“該鏈接無法訪問”,請(qǐng)檢查參數(shù)是否填寫錯(cuò)誤,是否擁有scope參數(shù)對(duì)應(yīng)的授權(quán)作用域權(quán)限。

尤其注意:由于授權(quán)操作安全等級(jí)較高,所以在發(fā)起授權(quán)請(qǐng)求時(shí),微信會(huì)對(duì)授權(quán)鏈接做正則強(qiáng)匹配校驗(yàn),如果鏈接的參數(shù)順序不對(duì),授權(quán)頁面將無法正常訪問

其中:

AppID - 公眾號(hào)的唯一標(biāo)識(shí)
REDIRECT_URI - 跳轉(zhuǎn)url
SCOPE - 值為snsapi_base(不彈出授權(quán)頁面,直接跳轉(zhuǎn),只能獲取用戶openid) 或snsapi_userinfo (彈 出授權(quán)頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關(guān)注的情況下,只要用戶授權(quán),也能獲取其信息)
STATE - 開發(fā)者可以自定義填寫a-zA-Z0-9的參數(shù)值

2 通過code換取網(wǎng)頁授權(quán)access_token

如果用戶同意授權(quán),頁面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE。
state就是上面的STATE參數(shù)原樣傳過來的

實(shí)現(xiàn)代碼:

 <code class="hljs php">$code = I('get.code');if (empty($code)) {   //todo 非微信訪問   exit('</code>'); }
else
{ //授權(quán)后操作 }
登錄后復(fù)制

在這里我們就可以得到code用作后續(xù)的獲取access_token。

獲取code后,請(qǐng)求以下鏈接獲取access_token:

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

appid - 公眾號(hào)的唯一標(biāo)識(shí)
secret - 密鑰
code - 上述所返回的code
grant_type - 值為authorization_code

實(shí)現(xiàn)代碼:

 <code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');$str = 
file_get_contents
($url);$str = 
json
_decode($str, true);$access_token = $str['access_token'];</code>
登錄后復(fù)制

這里access_token可以做緩存處理,避免造成頻繁獲取
實(shí)現(xiàn)代碼,以TP框架為例:

 <code class="hljs php">$access_token = S('access_token');if (empty($access_token)) {  $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');  $str = file_get_contents($url);  $str = json_decode($str, true);  $access_token = $str['access_token'];  S('access_token', $access_token, 3600);}</code>
登錄后復(fù)制
登錄后復(fù)制

在獲取access_token后,也會(huì)一并返回openid(用戶唯一標(biāo)識(shí)),微信官方文檔的解釋是:用戶唯一標(biāo)識(shí),請(qǐng)注意,在未關(guān)注公眾號(hào)時(shí),用戶訪問公眾號(hào)的網(wǎng)頁,也會(huì)產(chǎn)生一個(gè)用戶和公眾號(hào)唯一的OpenID

openid是唯一標(biāo)識(shí)微信用戶的,如果用戶不是第一次登陸,可以在得到openid后查詢數(shù)據(jù)庫(kù)是否有綁定此openid的用戶,之后就無需重新獲取用戶數(shù)據(jù),直接獲取的數(shù)據(jù)庫(kù)user_id設(shè)置session,直接登陸訪問

3 第三步忽略,只在需要的時(shí)間重新獲取access_token而已

4 拉取用戶信息(需scope為 snsapi_userinfo)

在數(shù)據(jù)庫(kù)無此微信號(hào)用戶的綁定下,就相當(dāng)于用戶首次訪問登陸,則通過第四步來獲取用戶信息(在用戶授權(quán)情況下,網(wǎng)頁授權(quán)作用域?yàn)閟nsapi_userinfo,則此時(shí)開發(fā)者可以通過access_token和openid拉取用戶信息了),然后后臺(tái)創(chuàng)建user并綁定此微

信用戶(通過openid)

請(qǐng)求方法

http:GET(請(qǐng)使用https協(xié)議)api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

access_token - 上述所獲取的access_token
openid - 公眾號(hào)唯一標(biāo)識(shí)

實(shí)現(xiàn)代碼:

 <code class="hljs php">$access_token = S('access_token');if (empty($access_token)) {  $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');  $str = file_get_contents($url);  $str = json_decode($str, true);  $access_token = $str['access_token'];  S('access_token', $access_token, 3600);}</code>
登錄后復(fù)制
登錄后復(fù)制

以上就是微信公眾號(hào)獲取用戶信息的具體步驟。

【相關(guān)推薦】

1. 微信公眾號(hào)平臺(tái)源碼下載?

2.?微智創(chuàng)T+微信機(jī)器人源碼

以上就是網(wǎng)頁授權(quán)獲取用戶信息的方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)