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

  允許用戶提供一個令牌,而不是用戶名和" />

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

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 網(wǎng)站接入微信掃碼登陸獲取授權(quán)用戶信息

網(wǎng)站接入微信掃碼登陸獲取授權(quán)用戶信息

時間:2022-08-10 15:33:02 | 來源:網(wǎng)站運營

時間:2022-08-10 15:33:02 來源:網(wǎng)站運營

1、OAuth2.0

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

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

2、目標(biāo)

  我們這里主要模擬使用OAuth2.0,用戶通過掃描我們網(wǎng)頁應(yīng)用的二維碼并進(jìn)行授權(quán)登錄來獲取用戶的基本信息的過程。詳細(xì)的接口相關(guān)信息可以在微信開放平臺上查看:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

3、前期準(zhǔn)備(獲取微信開發(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)登錄接入之前,在微信開放平臺注冊開發(fā)者帳號,并擁有一個已審核通過的網(wǎng)站應(yīng)用,并獲得相應(yīng)的AppID和AppSecret,申請微信登錄且通過審核后,可開始接入流程。

3.1、注冊開發(fā)者賬號

  可以在https://open.weixin.qq.com/ 這里申請開發(fā)的賬號。由于是騰訊的網(wǎng)頁,這里可以直接通過 QQ號進(jìn)行登錄。

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

  在已經(jīng)登錄的界面中選擇“管理中心”——》網(wǎng)站應(yīng)用——》創(chuàng)建網(wǎng)站應(yīng)用







  將會彈出下面的界面







  填寫過后,還有有一個頁面需要填寫,提交一份紙質(zhì)版申請書掃描件(會提供模板,我們下載再來填寫后,需蓋章,簽名),配置回調(diào)域名(掃碼登錄后會跳轉(zhuǎn)的頁面)等。

  之后提交審核即可,等微信審核通過,我們即可獲得我們需要的網(wǎng)頁應(yīng)用的appid和AppSecret,并配置后回調(diào)的域名了(這三樣是我們開發(fā)所必須的)。

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

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







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







  我現(xiàn)在暫時沒有找到可以向公眾賬號那樣子的測試賬號的申請。如果有知道怎么可以申請到測試賬號的高手,希望能賜教一下。

  接下來,我們就可以開始我們的網(wǎng)頁微信掃碼登錄開發(fā)了。

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

  微信OAuth2.0授權(quán)登錄讓微信用戶使用微信身份安全登錄第三方應(yīng)用或網(wǎng)站,在微信用戶授權(quán)登錄已接入微信OAuth2.0的第三方應(yīng)用后,第三方可以獲取到用戶的接口調(diào)用憑證(access_token),通過access_token可以進(jìn)行微信開放平臺授權(quán)關(guān)系接口調(diào)用,從而可實現(xiàn)獲取微信用戶基本開放信息和幫助用戶實現(xiàn)基礎(chǔ)開放功能等?! ∥⑿臤Auth2.0授權(quán)登錄目前支持authorization_code模式,適用于擁有server端的應(yīng)用授權(quán)。該模式整體流程為:

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




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

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

注意:

1、這里填寫的是域名(是一個字符串),而不是URL,因此請勿加http://等協(xié)議頭; 2、授權(quán)回調(diào)域名配置規(guī)范為全域名,比如需要網(wǎng)頁授權(quán)的域名為:http://www.qq.com,配置以后此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進(jìn)行OAuth2.0鑒權(quán)。但http://pay.qq.comhttp://music.qq.com 、 http://qq.com無法進(jìn)行OAuth2.0鑒權(quán)
5.1、請求url說明
  第三方使用網(wǎng)站應(yīng)用授權(quán)登錄前請注意已獲取相應(yīng)網(wǎng)頁授權(quán)作用域(scope=snsapi_login),則可以通過在PC端打開以下鏈接:
https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect


參數(shù)說明

參數(shù)是否必須說明



返回說明

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

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

redirect_uri?state=STATE
5.2、事例:
  一號店的微信二維碼鏈接如下:
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ù)制到瀏覽器中打開即可獲得一號店的二維碼,二維碼頁面如下:



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

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

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

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
參數(shù)說明


參數(shù)是否必須說明

返回說明
正確的返回:





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





參數(shù)說明

錯誤返回樣例:
{"errcode":40029,"errmsg":"invalid code"}

注意

6.2、通過access_token獲取用戶的基本信息

獲取的前提條件

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




授權(quán)作用域(scope)接口接口說明



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







  此接口用于獲取用戶個人信息。開發(fā)者可通過OpenID來獲取用戶基本信息。特別需要注意的是,如果開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號,可通過獲取用戶基本信息中的unionid來區(qū)分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號,用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的。請注意,在用戶修改微信頭像后,舊的微信頭像URL將會失效,因此開發(fā)者應(yīng)該自己在獲取用戶信息后,將頭像圖片保存下來,避免微信頭像URL失效后的異常情況。

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
參數(shù)說明


參數(shù)是否必須說明

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



{ "openid":"OPENID", "nickname":"NICKNAME", "sex":1, "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", "privilege":[ "PRIVILEGE1", "PRIVILEGE2" ], "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL" }





參數(shù)說明

錯誤的Json返回示例:
{ "errcode":40003,"errmsg":"invalid openid" }
7、總結(jié)
  最近著手開發(fā)了微信網(wǎng)頁掃碼登錄和公眾號授權(quán)登錄收獲頗豐,兩者的開發(fā)很類似。以下是我個人摸索過程中發(fā)現(xiàn)的兩者的異同:


公眾賬號授權(quán)登錄:http://www.cnblogs.com/0201zcr/p/5131602.html
微信公眾號群發(fā)消息:http://www.cnblogs.com/0201zcr/p/5866296.html

致謝:感謝您的閱讀!

ps:接后端外包開發(fā)

關(guān)鍵詞:獲取,登陸,授權(quán),用戶,信息,入微

74
73
25
news

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

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