亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

nodejs微信開發之授權登錄+獲取用戶信息

2024-05-06 16:49:09
字體:
來源:轉載
供稿:網友

上一篇:獲取access_token+自定義菜單

這部分代碼是之前就已經完成了,但是考慮篇幅的問題就和上篇分開了,這部分相較前面的方式較為復雜一點,但是也是很容易理解的。

這里簡單介紹一下微信網頁授權。

微信網頁授權配置回調域名:

注:下面引自官方文檔

1、在微信公眾號請求用戶網頁授權之前,開發者需要先到公眾平臺官網中的“開發 - 接口權限 - 網頁服務 - 網頁帳號 - 網頁授權獲取用戶基本信息”的配置選項中,修改授權回調域名。請注意,這里填寫的是域名(是一個字符串),而不是URL,因此請勿加 http:// 等協議頭; 

2、授權回調域名配置規范為全域名,比如需要網頁授權的域名為:www.qq.com,配置以后此域名下面的頁面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以進行OAuth2.0鑒權。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com無法進行OAuth2.0鑒權。

比如:需要授權的網頁域名為http://xiadd.weixin.qq.com/demo,那么需要配置回調域名為xiadd.weixin.qq.com。其他域名同理。配置圖示如下:

在權限里找到這部分,點擊修改。

nodejs,微信開發,授權登錄

將回調域名改為自己需要的域名:

nodejs,微信開發,授權登錄

這樣回調域名就修改成功了。

授權登錄

關于授權登錄的各種參數細節這里就不多說了,但是這里也有一個access_token需要注意一下,和全局緩存的那個注意不要搞混了(話說tx為啥不做一下命名區分)。這里的access_token是oauth的一個憑證,全局緩存的那個是調用微信公眾平臺各個基礎接口所要用到的憑證。
具體而言,網頁授權流程分為四步:
1、引導用戶進入授權頁面同意授權,獲取code 
2、通過code換取網頁授權access_token(與基礎支持中的access_token不同) 
3、如果需要,開發者可以刷新網頁授權access_token,避免過期 
4、通過網頁授權access_token和openid獲取用戶基本信息 
這里的第三步不是必須的,這里先不提,也就是授權登錄主要是三部分。引導用戶點擊相應鏈接獲取code,code換區access_token,通過access_token去的相應信息。

引導用戶獲取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是固定的,就是公眾號的appid。
redirect_uri就是授權成功后需要跳轉到的鏈接。
response_type是固定的就是code。
scope就是授權權限,主要有兩種:snsapi_base (不彈出授權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出授權頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關注的情況下,只要用戶授權,也能獲取其信息)。

這里的scope以snsapi_userinfo為例,獲取用戶的信息。點進鏈接進入到授權頁面。如圖:

nodejs,微信開發,授權登錄

授權后得到url形式如下。code就包含在url里:

nodejs,微信開發,授權登錄

這樣code就得到了。code只能使用一次,5分鐘未被使用自動過期。

通過code換取網頁授權access_token

再次提醒,這里的access_token和全局緩存的access_token是不一樣的。具體返回參數請看文檔,這里不一一列出了。
得到code后,通過get請求https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code,參數分別為appid,appsecret,和前一步獲取的code,雖然這里可以通過瀏覽器進行請求,但是因為安全級別高,所以千萬在服務端進行請求。代碼如下:

//getWebToken.jsfunction getToken(code) { let reqUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token?'; let params = { appid: config.appId, secret: config.appSecret, code: code, grant_type: 'authorization_code' }; let options = { method: 'get', url: reqUrl+qs.stringify(params) }; console.log(options.url); return new Promise((resolve, reject) => { request(options, function (err, res, body) {  if (res) {  resolve(body);  } else {  reject(err);  } }) })}

就是很簡單的一個請求得到想要的數據。但是注意得到的數據是個字符串,需要進行處理,響應格式如下:

nodejs,微信開發,授權登錄

對于scope為snsapi_base的授權,這里是最后一步,會返回openid。如果需要再進行下一步。

拉取用戶信息

如果網頁授權作用域為snsapi_userinfo,則此時開發者可以通過access_token和openid拉取用戶信息了。
請求方法
http:GET(請使用https協議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 
這里也很簡單。直接看代碼:

function getUserInfo(AccessToken, openId) { let reqUrl = 'https://api.weixin.qq.com/sns/userinfo?'; let params = { access_token: AccessToken, openid: openId, lang: 'zh_CN' }; let options = { method: 'get', url: reqUrl+qs.stringify(params) };  return new Promise((resolve, reject) => { request(options, function (err, res, body) {  if (res) {  resolve(body);  } else {  reject(err);  } }); })}

具體響應到網頁上如圖所示:

nodejs,微信開發,授權登錄

這樣就通過授權登錄拉取到了用戶信息。

github地址奉上:https://github.com/xiadd/shorthand 歡迎star

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频一区二区三区| 亚洲精品日韩在线| 91成人性视频| 国产成人一区二区在线| xxxxx成人.com| 一二美女精品欧洲| 日本精品久久中文字幕佐佐木| 亚洲乱码一区二区| 亚洲激情视频在线| 91色p视频在线| 永久免费精品影视网站| 国产97在线视频| 日韩在线免费视频| 久久久久久国产精品久久| 91久久综合亚洲鲁鲁五月天| 日本亚洲欧美三级| 久久精品国产精品亚洲| 久久精品成人一区二区三区| 91成人精品网站| 国产精品av免费在线观看| 日韩精品视频在线免费观看| 欧美激情精品久久久久久蜜臀| 亚洲最大福利视频网站| 亚洲综合日韩在线| 日韩电影第一页| 中文字幕亚洲综合久久筱田步美| 亚洲天堂第二页| 日韩欧美国产骚| 国产精品免费一区豆花| 精品无人区乱码1区2区3区在线| 亚洲已满18点击进入在线看片| 国产精品一区二区电影| 精品国产1区2区| 国产精品扒开腿爽爽爽视频| 久久中文字幕一区| 九九九热精品免费视频观看网站| 久久精品视频免费播放| 日韩在线观看你懂的| 97视频在线观看视频免费视频| 亚洲国产精品999| 欧美日韩国产中文字幕| 亚洲欧美日韩国产精品| 久久久91精品国产| 日韩欧美国产高清91| 亚洲精品videossex少妇| 91精品国产乱码久久久久久蜜臀| 98精品国产高清在线xxxx天堂| 久久人人爽人人爽爽久久| 69**夜色精品国产69乱| 国内精品视频一区| 91精品国产91久久久久久不卡| 色七七影院综合| 国产日韩精品电影| 在线播放日韩专区| 91精品国产综合久久香蕉922| 亚洲精品电影网在线观看| 国产精品成人aaaaa网站| 一区二区三区四区视频| 欧美黑人xxx| 亚洲美女在线视频| 欧美视频国产精品| 欧美激情一区二区三区在线视频观看| 免费不卡在线观看av| 欧美激情视频在线免费观看 欧美视频免费一| 久久免费视频网| 最近中文字幕2019免费| 亚洲精品乱码久久久久久金桔影视| 中日韩午夜理伦电影免费| 欧美性在线观看| 欧美性猛交xxxxx水多| 欧美视频在线看| 欧美视频在线视频| 韩国美女主播一区| 午夜精品视频网站| 欧美性xxxx18| 夜夜狂射影院欧美极品| 日韩av一卡二卡| 亚洲欧美国产日韩中文字幕| 国产69精品久久久久9| 成人淫片在线看| 国产成人亚洲综合青青| 亚洲精品美女在线观看| 成人黄色大片在线免费观看| 久久97精品久久久久久久不卡| 欧美成人免费播放| 亚洲www在线观看| 亚洲欧洲在线免费| 日韩电影免费观看在线| 亚洲欧洲高清在线| 欧美大尺度激情区在线播放| 亚洲最大成人在线| 精品露脸国产偷人在视频| 亚洲欧美精品在线| 欧美重口另类videos人妖| 国产精品久久久久久久久久ktv| 国产精品久久久久久亚洲调教| 91精品久久久久| 九九热这里只有精品6| 国产精品久久久久久久app| 国产视频福利一区| 久久久亚洲影院你懂的| 日韩av色综合| 国产主播喷水一区二区| 久久久久久中文| 欧美一区二区三区免费视| 国产精品99久久久久久白浆小说| 国产精品成人一区二区| 欧美国产第一页| 亚洲免费电影在线观看| 国产中文字幕日韩| 亚洲福利视频专区| 精品久久久中文| 国产人妖伪娘一区91| 亚洲色图五月天| 成人免费淫片aa视频免费| 日韩网站在线观看| 日韩大胆人体377p| 日韩av网址在线| 成人亚洲激情网| 一级做a爰片久久毛片美女图片| 精品在线观看国产| 欧美激情精品久久久| 高清一区二区三区四区五区| 亚洲精品99久久久久中文字幕| 国产成人精品a视频一区www| 成人性生交大片免费看视频直播| 亚洲美女又黄又爽在线观看| 最新亚洲国产精品| 欧美一级电影在线| 日韩亚洲一区二区| 日韩国产精品亚洲а∨天堂免| 亚洲18私人小影院| 国产亚洲一级高清| 日韩av在线天堂网| 国产亚洲福利一区| 国产视频久久久久| 最近更新的2019中文字幕| 精品视频偷偷看在线观看| 中文字幕亚洲二区| 揄拍成人国产精品视频| 亚洲伦理中文字幕| 国产成人综合一区二区三区| 激情成人中文字幕| 九九久久久久99精品| 欧美日韩国产va另类| 欧美亚洲另类在线| 久久久999成人| 久久久国产精品一区| 中文字幕精品久久久久| 91最新在线免费观看| 日韩av电影中文字幕| 伊人久久综合97精品| 亚洲综合色激情五月| 91精品视频免费| 亚洲精品自拍偷拍| 亚洲一区二区三区四区视频| 国产精品国产三级国产专播精品人| 亚洲国产精品va| 日韩激情视频在线播放| 久久综合免费视频| 日韩av黄色在线观看| 午夜精品国产精品大乳美女| 韩日欧美一区二区| 国产精品88a∨|