<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 21:59:49
        文檔

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

        nodejs微信開發(fā)之授權登錄+獲取用戶信息:上一篇:獲取access_token+自定義菜單 這部分代碼是之前就已經完成了,但是考慮篇幅的問題就和上篇分開了,這部分相較前面的方式較為復雜一點,但是也是很容易理解的。 這里簡單介紹一下微信網頁授權。 微信網頁授權配置回調域名: 注:下面引自官方文檔
        推薦度:
        導讀nodejs微信開發(fā)之授權登錄+獲取用戶信息:上一篇:獲取access_token+自定義菜單 這部分代碼是之前就已經完成了,但是考慮篇幅的問題就和上篇分開了,這部分相較前面的方式較為復雜一點,但是也是很容易理解的。 這里簡單介紹一下微信網頁授權。 微信網頁授權配置回調域名: 注:下面引自官方文檔

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

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

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

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

        注:下面引自官方文檔

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

        2、授權回調域名配置規(guī)范為全域名,比如需要網頁授權的域名為: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。其他域名同理。配置圖示如下:

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


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


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

        授權登錄

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


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

        這樣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.js
        function 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);
         }
         })
         })
        }

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

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

        拉取用戶信息

        如果網頁授權作用域為snsapi_userinfo,則此時開發(fā)者可以通過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);
         }
         });
         })
        }

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

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

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

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        nodejs微信開發(fā)之授權登錄+獲取用戶信息:上一篇:獲取access_token+自定義菜單 這部分代碼是之前就已經完成了,但是考慮篇幅的問題就和上篇分開了,這部分相較前面的方式較為復雜一點,但是也是很容易理解的。 這里簡單介紹一下微信網頁授權。 微信網頁授權配置回調域名: 注:下面引自官方文檔
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 无码欧精品亚洲日韩一区夜夜嗨| 丁香花在线观看免费观看| 免费中文字幕不卡视频| 亚洲乱妇老熟女爽到高潮的片| 久久精品免费全国观看国产| 亚洲国产精品线观看不卡| 可以免费看的卡一卡二| 亚洲一区欧洲一区| 日韩电影免费在线观看视频| 国产亚洲一卡2卡3卡4卡新区 | 亚洲一区二区三区AV无码| 手机永久免费的AV在线电影网| 亚洲一区二区三区在线播放| 久久毛片免费看一区二区三区| 亚洲AV综合色区无码一区爱AV | 在线观看免费播放av片| 亚洲欧洲国产精品你懂的| 18pao国产成视频永久免费| 亚洲五月丁香综合视频| 日韩毛片免费在线观看| 一级成人生活片免费看| 亚洲精品国产成人99久久| 成人免费一区二区无码视频| 无套内射无矿码免费看黄| 亚洲av无码成h人动漫无遮挡| 最近中文字幕mv免费高清在线| 亚洲AV成人影视在线观看| 亚洲国产精品自在拍在线播放| 免费毛片在线看不用播放器| 亚洲午夜精品一区二区公牛电影院 | aa在线免费观看| 亚洲国产精品线观看不卡| 四虎影视在线永久免费看黄| 99久久精品毛片免费播放| 亚洲国产片在线观看| 国产成人精品日本亚洲专区| 国产91免费在线观看| 成人免费视频一区二区| 亚洲国产精品综合一区在线| 亚洲国产小视频精品久久久三级| 91香蕉国产线在线观看免费|