公眾號(hào)授權(quán)網(wǎng)頁(yè)獲取 openid

參考官方文檔的介紹,網(wǎng)頁(yè)授權(quán)流程分為四步:

  1. 引導(dǎo)用戶進(jìn)入授權(quán)頁(yè)面同意授權(quán)拆内,獲取 code兄裂;
  2. 通過(guò) code 換取網(wǎng)頁(yè)授權(quán) access_token(與基礎(chǔ)支持中的 access_token 不同)夫啊;
  3. 如果需要椅寺,開(kāi)發(fā)者可以刷新網(wǎng)頁(yè)授權(quán) access_token搜立,避免過(guò)期闪朱;
  4. 通過(guò)網(wǎng)頁(yè)授權(quán) access_token 和 openid 獲取用戶基本信息(支持 unionid 機(jī)制)怕篷。

網(wǎng)頁(yè)授權(quán)有兩種 scope,以 snsapi_base 為 scope 發(fā)起的網(wǎng)頁(yè)授權(quán)友鼻,是用來(lái)獲取進(jìn)入頁(yè)面的用戶 openid傻昙,同時(shí)是靜默授權(quán)并自動(dòng)跳轉(zhuǎn)到回調(diào)頁(yè)的闺骚。用戶感知的就是直接進(jìn)入了回調(diào)頁(yè)(往往是業(yè)務(wù)頁(yè)面),具體步驟如下:

第一步:用戶同意授權(quán)妆档,獲取 code
訪問(wèn)頁(yè)面的時(shí)候僻爽,重定向到授權(quán)頁(yè)面(https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect),授權(quán)完成頁(yè)面將跳轉(zhuǎn)至 redirect_uri/?code=CODE&state=STATE贾惦。

第二步:通過(guò) code 換取網(wǎng)頁(yè)授權(quán) access_token
本步驟中獲取到網(wǎng)頁(yè)授權(quán) access_token 的同時(shí)胸梆,也獲取到了 openid。
注意:由于公眾號(hào)的 secret 和獲取到的 access_token 安全級(jí)別都非常高须板,必須只保存在服務(wù)端碰镜,不允許傳給客戶端。因此习瑰,服務(wù)器發(fā)起獲取 openid 的接口:

window.onload = function() {
    var localUrl = window.location.href;
    var code = getQueryString('code');
    var APPID = 'xxxxxxx';
    if(code == null || code == '' ) {
        var scopeUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=" + encodeURIComponent(localUrl) + "&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
        window.location.href = scopeUrl;
    } else {
        console.log(code)
        // 調(diào)用服務(wù)端的通過(guò) code 獲取 openid 接口
        getWebOpenId(code).then(function(res) {
            console.log(res.result.openid)
        });  }

}

第三步:服務(wù)端獲取 openid

相關(guān)代碼如下所示:

// appid 和 appsecret 存儲(chǔ)在服務(wù)端
var appId = config.appId,
    appSecret = config.appSecret;

// 公眾號(hào)授權(quán)網(wǎng)頁(yè)通過(guò) code 獲取 openid
router.post('/getCode', function(req, res) {
  console.log(req.body);
  var url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appId + '&secret='+ appSecret +'&code=' + req.body.code + '&grant_type=authorization_code';
  axios.get(url)
    .then(function(response) {
      console.log('response', response.data);
      res.json(response.data)
    })
    .catch(function(err) {
      console.log(err)
      res.json(err)
    })
    .then(function() {

    })
})

獲取的 openid 如下圖所示:


網(wǎng)頁(yè)獲取到的 openid
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绪颖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甜奄,更是在濱河造成了極大的恐慌柠横,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件课兄,死亡現(xiàn)場(chǎng)離奇詭異牍氛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)烟阐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)搬俊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蜒茄,你說(shuō)我怎么就攤上這事悠抹。” “怎么了扩淀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)啤挎。 經(jīng)常有香客問(wèn)我驻谆,道長(zhǎng),這世上最難降的妖魔是什么庆聘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任胜臊,我火速辦了婚禮,結(jié)果婚禮上伙判,老公的妹妹穿的比我還像新娘象对。我一直安慰自己,他們只是感情好宴抚,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布勒魔。 她就那樣靜靜地躺著甫煞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪冠绢。 梳的紋絲不亂的頭發(fā)上抚吠,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音弟胀,去河邊找鬼楷力。 笑死,一個(gè)胖子當(dāng)著我的面吹牛孵户,可吹牛的內(nèi)容都是我干的萧朝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼夏哭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼检柬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起方庭,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤厕吉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后械念,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體头朱,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年龄减,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了项钮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡希停,死狀恐怖烁巫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宠能,我是刑警寧澤亚隙,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站违崇,受9級(jí)特大地震影響阿弃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羞延,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一渣淳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伴箩,春花似錦入愧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)怔蚌。三九已至,卻和暖如春鞠值,著一層夾襖步出監(jiān)牢的瞬間媚创,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工彤恶, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钞钙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓声离,卻偏偏與公主長(zhǎng)得像芒炼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子术徊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容