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

目錄
返回說(shuō)明
首頁(yè) 微信小程式 微信開(kāi)發(fā) 微信開(kāi)放平臺(tái)開(kāi)發(fā)-網(wǎng)頁(yè)微信掃碼登入(OAuth2.0)

微信開(kāi)放平臺(tái)開(kāi)發(fā)-網(wǎng)頁(yè)微信掃碼登入(OAuth2.0)

Feb 14, 2017 pm 01:21 PM

1、OAuth2.0

  OAuth(開(kāi)放授權(quán))是一個(gè)開(kāi)放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問(wèn)該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源(如照片,視頻,聯(lián)繫人列表),而無(wú)需將使用者名稱和密碼提供給第三方應(yīng)用程式。

  允許使用者提供一個(gè)令牌,而不是使用者名稱和密碼來(lái)存取他們存放在特定服務(wù)提供者的資料。每一個(gè)令牌授權(quán)一個(gè)特定的網(wǎng)站(例如,影片編輯網(wǎng)站)在特定的時(shí)段(例如,接下來(lái)的2小時(shí)內(nèi))內(nèi)存取特定的資源(例如僅僅是某一相簿中的影片)。這樣,OAuth允許使用者授權(quán)第三方網(wǎng)站存取他們儲(chǔ)存在另外的服務(wù)提供者上的信息,而不需要分享他們的存取許可或他們資料的所有內(nèi)容。

2、目標(biāo)

  我們這裡主要模擬使用OAuth2.0,使用者透過(guò)掃描我們網(wǎng)頁(yè)應(yīng)用的二維碼並進(jìn)行授權(quán)登入來(lái)獲取使用者的基本資訊的過(guò)程。詳細(xì)的介面相關(guān)資訊可在微信開(kāi)放平臺(tái)上查看:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

3、前期準(zhǔn)備(取得微信開(kāi)發(fā)者權(quán)限)

  我們這裡主要講的是網(wǎng)站(Web)應(yīng)用,網(wǎng)站應(yīng)用微信登入是基於OAuth2.0協(xié)定標(biāo)準(zhǔn)建構(gòu)的微信OAuth2.0授權(quán)登入系統(tǒng)(即上面的協(xié)定)。在微信用戶端授權(quán)登入(取得使用者資訊)的可以查看:http://www.cnblogs.com/0201zcr/p/5131602.html

  在進(jìn)行微信OAuth2.在進(jìn)行微信OAuth2.0授權(quán)登入之前存取,在微信開(kāi)放平臺(tái)註冊(cè)開(kāi)發(fā)者帳號(hào),並擁有一個(gè)已審核通過(guò)的網(wǎng)站應(yīng)用,並獲得相應(yīng)的AppID和AppSecret,申請(qǐng)微信登入且通過(guò)審核後,可開(kāi)始存取流程。

3.1、註冊(cè)開(kāi)發(fā)者帳號(hào)

  可以在https://open.weixin.qq.com/?這裡申請(qǐng)開(kāi)發(fā)的帳號(hào)。由於是騰訊的網(wǎng)頁(yè),這裡可以直接透過(guò)?QQ號(hào)進(jìn)行登入。

3.2、提交網(wǎng)站應(yīng)用審核

  在已經(jīng)登入的介面中選擇「管理中心」—》網(wǎng)站應(yīng)用程式—》建立網(wǎng)站應(yīng)用程式

微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

???都會(huì)彈出後將彈出後填入下面的介面所彈出後的介面。 ,還有一個(gè)頁(yè)面需要填寫(xiě),提交一份紙本申請(qǐng)書(shū)掃描件(會(huì)提供模板,我們下載再來(lái)填寫(xiě)後,需蓋章,簽名),配置回調(diào)域名(掃碼登錄後會(huì)跳轉(zhuǎn)的頁(yè)面)等。

  之後提交審核即可,等微信審核通過(guò),我們即可獲得我們需要的網(wǎng)頁(yè)應(yīng)用的appid和AppSecret,並配置後回調(diào)的域名了(這三樣是我們開(kāi)發(fā)所必須的)。 微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

3.3、開(kāi)發(fā)者資質(zhì)認(rèn)證

  由於我們這裡要使用微信登錄的接口,所以我們還需要向微信提出認(rèn)證,只有認(rèn)證了才能使用微信那些高級(jí)的接口。未經(jīng)認(rèn)證的如下圖

?  認(rèn)證之後是這樣子的:

微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

?  ?我現(xiàn)在暫時(shí)沒(méi)有找到可以向公眾帳號(hào)那樣子的測(cè)試帳號(hào)的申請(qǐng)。如果有知道怎麼可以申請(qǐng)到測(cè)試帳號(hào)的高手,希望能賜教一下。

  接下來(lái),我們就可以開(kāi)始我們的網(wǎng)頁(yè)微信掃碼登入開(kāi)發(fā)了。 微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

4、授權(quán)流程說(shuō)明

  微信OAuth2.0授權(quán)登入讓微信使用者使用微信身分安全登入第三方應(yīng)用程式或網(wǎng)站,在微信使用者授權(quán)登入已接取微信OAuth2.0的第三方應(yīng)用程式後,第三方可以取得到使用者的介面調(diào)用憑證(access_token),透過(guò)access_token可以進(jìn)行微信開(kāi)放平臺(tái)授權(quán)關(guān)係介面調(diào)用,從而實(shí)現(xiàn)獲取微信用戶基本開(kāi)放資訊和幫助用戶實(shí)現(xiàn)基礎(chǔ)開(kāi)放功能等。

  微信OAuth2.0授權(quán)登入目前支援a(chǎn)uthorization_code模式,適用於擁有server端的應(yīng)用程式授權(quán)。此模式整體流程為:

1.?第三方發(fā)起微信授權(quán)登錄請(qǐng)求,微信用戶允許授權(quán)第三方應(yīng)用后,微信會(huì)拉起應(yīng)用或重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時(shí)票據(jù)code參數(shù);2.?通過(guò)code參數(shù)加上AppID和AppSecret等,通過(guò)API換取access_token;3.?通過(guò)access_token進(jìn)行接口調(diào)用,獲取用戶基本數(shù)據(jù)資源或幫助用戶實(shí)現(xiàn)基本操作。


?  取得access_token時(shí)序圖:

?微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

5、獲取網(wǎng)頁(yè)的二維碼

  當(dāng)我們通過(guò)微信的認(rèn)證,獲取到了appid和AppSecret,并配置了回調(diào)的域名。我們就已經(jīng)可以獲取屬于我們網(wǎng)頁(yè)的二維碼了,獲取的方式很簡(jiǎn)單,只需打開(kāi)一個(gè)微信的鏈接,加上我們的appid和回調(diào)域名即可在網(wǎng)頁(yè)上面打開(kāi)二維碼,用戶用微信客戶端掃碼并授權(quán)登錄之后即會(huì)跳轉(zhuǎn)到我們配置的回調(diào)域名下。

注意:


1、這里填寫(xiě)的是域名(是一個(gè)字符串),而不是URL,因此請(qǐng)勿加http://等協(xié)議頭;2、授權(quán)回調(diào)域名配置規(guī)范為全域名,比如需要網(wǎng)頁(yè)授權(quán)的域名為:www.qq.com,配置以后此域名下面的頁(yè)面http://www.qq.com/music.html?、?http://m.miracleart.cn/?都可以進(jìn)行OAuth2.0鑒權(quán)。但http://pay.qq.com?、?http://m.miracleart.cn/?、?http://m.miracleart.cn/無(wú)法進(jìn)行OAuth2.0鑒權(quán)

5.1、請(qǐng)求url說(shuō)明

  第三方使用網(wǎng)站應(yīng)用授權(quán)登錄前請(qǐng)注意已獲取相應(yīng)網(wǎng)頁(yè)授權(quán)作用域(scope=snsapi_login),則可以通過(guò)在PC端打開(kāi)以下鏈接:

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

?

?參數(shù)說(shuō)明

參數(shù) 是否必須 說(shuō)明
appid 應(yīng)用唯一標(biāo)識(shí)(前面認(rèn)證網(wǎng)頁(yè)應(yīng)用中獲得)
redirect_uri 重定向地址,需要進(jìn)行UrlEncode(前面認(rèn)證網(wǎng)頁(yè)應(yīng)用中獲得)
response_type 填code
scope 應(yīng)用授權(quán)作用域,擁有多個(gè)作用域用逗號(hào)(,)分隔,網(wǎng)頁(yè)應(yīng)用目前僅填寫(xiě)snsapi_login即可
state 用于保持請(qǐng)求和回調(diào)的狀態(tài),授權(quán)請(qǐng)求后原樣帶回給第三方。該參數(shù)可用于防止csrf攻擊(跨站請(qǐng)求偽造攻擊),建議第三方帶上該參數(shù),可設(shè)置為簡(jiǎn)單的隨機(jī)數(shù)加session進(jìn)行校驗(yàn)

?返回說(shuō)明

?  用戶允許授權(quán)后,將會(huì)重定向到redirect_uri的網(wǎng)址上,并且?guī)蟘ode和state參數(shù)


redirect_uri?code=CODE&state=STATE

?  若用戶禁止授權(quán),則重定向后不會(huì)帶上code參數(shù),僅會(huì)帶上state參數(shù)


redirect_uri?state=STATE

5.2、事例:

  一號(hào)店的微信二維碼鏈接如下:

https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https%3A%2F%2Fpassport.yhd.com%2Fwechat%2Fcallback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect

?  將其復(fù)制到瀏覽器中打開(kāi)即可獲得一號(hào)店的二維碼,二維碼頁(yè)面如下:

微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

  通過(guò)使用微信客戶端的掃一掃功能,掃描該二維碼,即會(huì)跳轉(zhuǎn)到上面填寫(xiě)redirect_uri所在的地址上。假如用戶同意授權(quán),這里就獲得了微信返回的code參數(shù)了。

6、獲取用戶信息

  假如前面已經(jīng)獲得code。我們可以通過(guò)code參數(shù)去獲取用戶openid和access_token,進(jìn)而獲得用戶的信息。

6.1、通過(guò)code參數(shù)獲取access_token


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

?參數(shù)說(shuō)明

參數(shù) 是否必須 說(shuō)明
appid 應(yīng)用唯一標(biāo)識(shí),在微信開(kāi)放平臺(tái)提交應(yīng)用審核通過(guò)后獲得
secret 應(yīng)用密鑰AppSecret,在微信開(kāi)放平臺(tái)提交應(yīng)用審核通過(guò)后獲得
code 填寫(xiě)第一步獲取的code參數(shù)
grant_type 填authorization_code
返回說(shuō)明

正確的返回:


{?
"access_token":"ACCESS_TOKEN",?
"expires_in":7200,?
"refresh_token":"REFRESH_TOKEN","openid":"OPENID",?
"scope":"SCOPE","unionid":?"o6_bmasdasdsad6_2sgVt7hMZOPfL"}

參數(shù) 說(shuō)明
access_token 接口調(diào)用憑證
expires_in access_token接口調(diào)用憑證超時(shí)時(shí)間,單位(秒)
refresh_token 用戶刷新access_token
openid 授權(quán)用戶唯一標(biāo)識(shí)
scope 用戶授權(quán)的作用域,使用逗號(hào)(,)分隔
?unionid 當(dāng)且僅當(dāng)該網(wǎng)站應(yīng)用已獲得該用戶的userinfo授權(quán)時(shí),才會(huì)出現(xiàn)該字段。

錯(cuò)誤返回樣例:


{"errcode":40029,"errmsg":"invalid?code"}

注意:

  • code參數(shù)的超時(shí)時(shí)間是5分鐘,且每次請(qǐng)求的code參數(shù)的值都不一樣。

  • access_token的超時(shí)時(shí)間是32分鐘。

6.2、通過(guò)access_token獲取用戶的基本信息

獲取的前提條件

  • access_token有效且為超時(shí);

  • 微信用戶已授權(quán)給第三方應(yīng)用賬號(hào)相應(yīng)接口作用域(scope)【在二維碼生成連接那里填寫(xiě)】

對(duì)于接口作用域(scope),能調(diào)用的接口有以下:

授權(quán)作用域(scope) 接口 接口說(shuō)明
snsapi_base /sns/oauth2/access_token 通過(guò)code換取access_token、refresh_token和已授權(quán)scope
/sns/oauth2/refresh_token 刷新或續(xù)期access_token使用
/sns/auth 檢查access_token有效性
snsapi_userinfo /sns/userinfo 獲取用戶個(gè)人信息

?

  使用snsapi_base作用域的授權(quán)是掃碼之后無(wú)需用戶點(diǎn)擊授權(quán),掃碼后直接跳轉(zhuǎn),用戶感覺(jué)不到授權(quán)了,但這種授權(quán)方式能獲取的數(shù)據(jù)量有限,這里我們要獲取用戶的基本信息,我們需要使用snsapi_userinfo授權(quán)。使用snsapi_userinfo授權(quán),掃碼后出現(xiàn)類(lèi)似于下面的授權(quán)界面

微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)

  此接口用于獲取用戶個(gè)人信息。開(kāi)發(fā)者可通過(guò)OpenID來(lái)獲取用戶基本信息。特別需要注意的是,如果開(kāi)發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào),可通過(guò)獲取用戶基本信息中的unionid來(lái)區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開(kāi)放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào),用戶的unionid是唯一的。換句話說(shuō),同一用戶,對(duì)同一個(gè)微信開(kāi)放平臺(tái)下的不同應(yīng)用,unionid是相同的。請(qǐng)注意,在用戶修改微信頭像后,舊的微信頭像URL將會(huì)失效,因此開(kāi)發(fā)者應(yīng)該自己在獲取用戶信息后,將頭像圖片保存下來(lái),避免微信頭像URL失效后的異常情況。

  

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

?參數(shù)說(shuō)明

參數(shù) 是否必須 說(shuō)明
access_token 調(diào)用憑證(上一個(gè)請(qǐng)求中獲得)
openid 普通用戶的標(biāo)識(shí),對(duì)當(dāng)前開(kāi)發(fā)者帳號(hào)唯一(上一個(gè)請(qǐng)求中獲得)
? ? ? ?lang ? 否 國(guó)家地區(qū)語(yǔ)言版本,zh_CN 簡(jiǎn)體,zh_TW 繁體,en 英語(yǔ),默認(rèn)為zh-CN
返回說(shuō)明

正確的Json返回結(jié)果:


{?
"openid":"OPENID","nickname":"NICKNAME","sex":1,"province":"PROVINCE","city":"CITY","country":"COUNTRY","headimgurl":?"http://m.miracleart.cn/","privilege":["PRIVILEGE1",?
"PRIVILEGE2"],"unionid":?"?o6_bmasdasdsad6_2sgVt7hMZOPfL"}

參數(shù) 說(shuō)明
openid 普通用戶的標(biāo)識(shí),對(duì)當(dāng)前開(kāi)發(fā)者帳號(hào)唯一
nickname 普通用戶昵稱
sex 普通用戶性別,1為男性,2為女性
province 普通用戶個(gè)人資料填寫(xiě)的省份
city 普通用戶個(gè)人資料填寫(xiě)的城市
country 國(guó)家,如中國(guó)為CN
headimgurl 用戶頭像,最后一個(gè)數(shù)值代表正方形頭像大?。ㄓ?、46、64、96、132數(shù)值可選,0代表640*640正方形頭像),用戶沒(méi)有頭像時(shí)該項(xiàng)為空
privilege 用戶特權(quán)信息,json數(shù)組,如微信沃卡用戶為(chinaunicom)
unionid 用戶統(tǒng)一標(biāo)識(shí)。針對(duì)一個(gè)微信開(kāi)放平臺(tái)帳號(hào)下的應(yīng)用,同一用戶的unionid是唯一的。

錯(cuò)誤的Json返回示例:


{?
"errcode":40003,"errmsg":"invalid?openid"}

7、總結(jié)?

  最近著手開(kāi)發(fā)了微信網(wǎng)頁(yè)掃碼登錄和公眾號(hào)授權(quán)登錄收獲頗豐,兩者的開(kāi)發(fā)很類(lèi)似。以下是我個(gè)人摸索過(guò)程中發(fā)現(xiàn)的兩者的異同:

  • 兩者都可以通過(guò)微信客戶端掃碼授權(quán)的方式,讓第三方頁(yè)面獲得微信用戶的一些基本信息(昵稱、性別、所在地、在微信唯一標(biāo)示等……)。他們都是通過(guò)提供一個(gè)鏈接讓用戶授權(quán)的方式。但網(wǎng)頁(yè)版需要在頁(yè)面打開(kāi)二維碼之后授權(quán),而公眾號(hào)則需要用戶先關(guān)注了我們的公眾號(hào),然后點(diǎn)開(kāi)公眾號(hào)里面的鏈接,確認(rèn)授權(quán)即可。

  • 網(wǎng)頁(yè)掃碼登錄需要將授權(quán)的鏈接(二維碼鏈接)在網(wǎng)頁(yè)中打開(kāi)、而公眾號(hào)授權(quán)登錄的鏈接必須要微信客戶端中打開(kāi)。

  • 無(wú)論網(wǎng)頁(yè)掃碼登錄還是在公眾號(hào)中授權(quán)登錄,都是通過(guò)授權(quán)的方式獲得一個(gè)code參數(shù),之后通過(guò)code參數(shù)獲取access_token和openid和通過(guò)access_token和openid去獲取用戶的基本信息的請(qǐng)求鏈接是一樣的。

  • 在開(kāi)發(fā)公眾號(hào)授權(quán)登錄的過(guò)程中,我發(fā)現(xiàn)了有測(cè)試賬號(hào)的提供,足以滿足我們的測(cè)試和開(kāi)發(fā),但在開(kāi)發(fā)網(wǎng)頁(yè)掃碼時(shí),暫時(shí)未發(fā)現(xiàn)哪里能獲取測(cè)試賬號(hào),我是通過(guò)申請(qǐng)獲取的。(希望知道哪里有測(cè)試賬號(hào)的請(qǐng)求高手賜教)。

?公眾賬號(hào)授權(quán)登錄:http://www.cnblogs.com/0201zcr/p/5131602.html

微信公眾號(hào)群發(fā)消息:http://www.cnblogs.com/0201zcr/p/5866296.html

更多微信開(kāi)放平臺(tái)開(kāi)發(fā)——網(wǎng)頁(yè)微信掃碼登錄(OAuth2.0)?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題