国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端H5實(shí)現(xiàn)微信授權(quán)

這篇具有很好參考價(jià)值的文章主要介紹了前端H5實(shí)現(xiàn)微信授權(quán)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

背景:

前段時(shí)間做了一個(gè)H5項(xiàng)目,H5項(xiàng)目需要放在微信公眾號(hào)里面,并且需要通過(guò)微信授權(quán)拿到openId,所以就需要實(shí)現(xiàn)h5授權(quán)微信這個(gè)功能了。

原理:

其實(shí)原理就是前端在本項(xiàng)目首頁(yè)去請(qǐng)求微信端提供的一個(gè)地址,并且在地址上配置微信所需要的參數(shù),比如最重要的就是你要配置微信最后獲取到參數(shù)之后跳轉(zhuǎn)你自己項(xiàng)目的地址,所以這就是h5授權(quán)微信的方式,通過(guò)用戶項(xiàng)目跳轉(zhuǎn)微信提供的地址,微信會(huì)把你所需要的參數(shù)拼接在你所填寫的地址上面,最后跳轉(zhuǎn)回來(lái),你就可以直接從路徑上獲取了。????????

參考地址:微信公眾號(hào)官方文檔?網(wǎng)頁(yè)授權(quán) | 微信開放文檔

實(shí)現(xiàn)方式:

由于實(shí)現(xiàn)起來(lái)原理都是一個(gè),所以大概有三種實(shí)現(xiàn)方式,分為前端獲取和后端獲取

方法一:(前端獲取授權(quán))

我們自己去請(qǐng)求微信的地址,?并且?guī)闲枰膮?shù)

https://open.weixin.qq.com/connect/oauth2/authorize?appid=$%7Bappid%7D&redirect_uri=$%7BencodeURIComponent%28local%29%7D&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirect

    getCode() {
      // 非靜默授權(quán),第一次有彈框
      var local = window.location.href; // 獲取頁(yè)面url
      var appid = '你們公眾號(hào)項(xiàng)目的appid'
      window.location.href=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`
      const unionId = this.getQueryString('unionId')
      const openId = this.getQueryString('openId')
    if(unionId&&openId) {
      // 授權(quán)成功之后直接存儲(chǔ)在vuex中
      this.$store.commit('setwxRowData',this.RowData)
    }
    },
    getQueryString(name) {
      const queryString = window.location.search;
      const params = new URLSearchParams(queryString);
      const value = params.get(name);
      return value ? decodeURIComponent(value) : null;
    }

我的代碼邏輯是先判斷地址欄上和vuex中有沒(méi)有openId,unionId,如果都沒(méi)有說(shuō)明需要進(jìn)行授權(quán),于是我們?cè)趍ounted里面去調(diào)用授權(quán)的方法進(jìn)行授權(quán),授權(quán)成功拿到數(shù)據(jù)之后我們可以把數(shù)據(jù)存儲(chǔ)在vuex中,之后的話在進(jìn)入項(xiàng)目我們直接從vuex里面去取就行了,如果請(qǐng)求接口提示openId,unionId失效的話,我們則清空vuex里面存儲(chǔ)的數(shù)據(jù)重新授權(quán)獲取新的參數(shù)即可。

 mounted() {
    var unionId = this.getQueryString('unionId')
    var unionId = this.getQueryString('openId')
    if(!unionId&&unionId){
      // 不存在則去授權(quán)
      this.getCode();
    }else {
      // 存在直接獲取進(jìn)行業(yè)務(wù)編寫即可
    }
  },

存在的問(wèn)題:

微信跳轉(zhuǎn)的地址需要備案好的地址,所以我們?cè)诒镜鼐褪菬o(wú)法調(diào)試的,跳轉(zhuǎn)回來(lái)會(huì)報(bào)一個(gè)redirect_url參數(shù)錯(cuò)誤的問(wèn)題

前端微信授權(quán),vue,前端,微信,html5

解決方式:需要進(jìn)行內(nèi)網(wǎng)穿透

要在本地進(jìn)行H5微信授權(quán)的聯(lián)調(diào),可以按照以下步驟進(jìn)行操作:

1. 在微信公眾平臺(tái)上創(chuàng)建一個(gè)測(cè)試號(hào),并獲取測(cè)試號(hào)的AppID。

2. 在本地開發(fā)環(huán)境中創(chuàng)建一個(gè)H5頁(yè)面,用于進(jìn)行微信授權(quán)。

3. 在H5頁(yè)面中引入微信JS-SDK,并使用測(cè)試號(hào)的AppID初始化。

4. 在H5頁(yè)面中編寫授權(quán)邏輯,包括調(diào)用微信JS-SDK的接口進(jìn)行授權(quán)驗(yàn)證、獲取用戶信息等。

5. 在本地啟動(dòng)一個(gè)Web服務(wù)器,將H5頁(yè)面部署到該服務(wù)器上。

6. 在微信公眾平臺(tái)的測(cè)試號(hào)設(shè)置中,配置授權(quán)回調(diào)域名為本地Web服務(wù)器的域名。

7. 在本地瀏覽器中訪問(wèn)H5頁(yè)面,進(jìn)行微信授權(quán)的測(cè)試。

需要注意的是,由于微信授權(quán)需要在公網(wǎng)環(huán)境下進(jìn)行,所以在本地進(jìn)行聯(lián)調(diào)時(shí),需要將本地Web服務(wù)器暴露到公網(wǎng),可以使用工具如ngrok來(lái)實(shí)現(xiàn)內(nèi)網(wǎng)穿透,將本地服務(wù)器映射到一個(gè)公網(wǎng)地址上。

另外,為了方便調(diào)試和排查問(wèn)題,可以在H5頁(yè)面中添加日志輸出,查看授權(quán)過(guò)程中的返回結(jié)果和錯(cuò)誤信息。

總結(jié)來(lái)說(shuō),H5微信授權(quán)的本地聯(lián)調(diào)需要?jiǎng)?chuàng)建測(cè)試號(hào)、配置授權(quán)回調(diào)域名、啟動(dòng)本地Web服務(wù)器,并使用微信JS-SDK進(jìn)行授權(quán)驗(yàn)證和獲取用戶信息。通過(guò)內(nèi)網(wǎng)穿透工具將本地服務(wù)器暴露到公網(wǎng),可以在本地瀏覽器中進(jìn)行授權(quán)的測(cè)試。

可以對(duì)如下文章進(jìn)行參考

微信h5開發(fā)網(wǎng)頁(yè)授權(quán)-本地如何開發(fā)調(diào)試?_微信開發(fā)者如何測(cè)試本地h5登錄_沐雪架構(gòu)師的博客-CSDN博客

配置好之后就可以正常進(jìn)行授權(quán)了

前端微信授權(quán),vue,前端,微信,html5

允許之后就會(huì)跳轉(zhuǎn)到自己項(xiàng)目并且?guī)衔覀兯枰膮?shù)?

?方法二:(前后端結(jié)合獲取授權(quán))

優(yōu)點(diǎn):前后端結(jié)合獲取其實(shí)原理還是一樣的原理,實(shí)現(xiàn)方式與前端自己獲取主要變化是,我們不在需要去請(qǐng)求微信端的地址,后臺(tái)會(huì)在微信公眾平臺(tái)上做一個(gè)地址映射,我們直接去請(qǐng)求后臺(tái)提供的地址,原理是一樣的,當(dāng)我們請(qǐng)求后臺(tái)地址的時(shí)候,他會(huì)去幫我們請(qǐng)求微信地址,最后跳轉(zhuǎn)回來(lái)并且把參數(shù)帶給我們,這樣我們就解決了方法一前端獲取參數(shù)調(diào)試需要做地址映射的步驟

 getCode() {
      // 非靜默授權(quán),第一次有彈框
      var local = window.location.href; // 獲取頁(yè)面url
      // 后臺(tái)提供的地址 (https://cgw.cunwedu.com.cn/wx/whitelist/user/render/wechat_mp/A11)
      // 配置參數(shù):由于后臺(tái)進(jìn)行配置了,我們這就不需要傳遞appid了,只需要帶上跳轉(zhuǎn)回來(lái)的地址即可
      window.location.href=`https://cgw.cunwedu.com.cn/wx/whitelist/user/render/wechat_mp/A11?part=${encodeURIComponent(local)}`
    },
    getQueryString(name) {
      const queryString = window.location.search;
      const params = new URLSearchParams(queryString);
      const value = params.get(name);
      return value ? decodeURIComponent(value) : null;
    }
  }

mounted里面進(jìn)行執(zhí)行,這里邏輯與方法一一樣

?mounted() {
? ? var unionId = this.getQueryString('unionId')
? ? var unionId = this.getQueryString('openId')
? ? if(!unionId&&unionId){
? ? ? // 不存在則去授權(quán)
? ? ? this.getCode();
? ? }else {
? ? ? // 存在直接獲取進(jìn)行業(yè)務(wù)編寫即可
? ? }
? },

方法三:(后端獲取授權(quán))

原理也是一樣,也是跳轉(zhuǎn)獲取參數(shù),?這個(gè)時(shí)候后端會(huì)給你提供一個(gè)地址,你直接訪問(wèn)他的地址就行了,他的地址會(huì)直接在微信授權(quán)成功之后拿到參數(shù),這個(gè)時(shí)候后端會(huì)跳轉(zhuǎn)我們項(xiàng)目的地址,并且把參數(shù),帶給我們,這對(duì)于前端來(lái)說(shuō),就輕松了很多,我們只需要直接從地址欄上獲取就行了

例如http://hy-dev.xiaofugui.com.cn/sd/oauth/render/123456789/2 是后臺(tái)提供的地址,https://xd-h5-dev.xiaofugui.com.cn是我們h5的項(xiàng)目地址,我們?cè)L問(wèn)后臺(tái)提供的地址之后,他就會(huì)跳轉(zhuǎn)我們h5地址并且?guī)蠀?shù),例如https://xd-h5-dev.xiaofugui.com.cn?openId=1234&unionId=12345

對(duì)于前端來(lái)說(shuō),項(xiàng)目里面直接獲取使用即可

  mounted() {
    var unionId = this.getQueryString('unionId')
    var openId = this.getQueryString('openId')
    if(unionId&&openId&) {
      this.$store.commit('setwxRowData',this.RowData)
    }
  },

h5授權(quán)微信分享到這里就結(jié)束了,謝謝大家的觀看。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-647354.html

到了這里,關(guān)于前端H5實(shí)現(xiàn)微信授權(quán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • H5頁(yè)面實(shí)現(xiàn)微信授權(quán)登錄

    H5頁(yè)面實(shí)現(xiàn)微信授權(quán)登錄

    用戶通過(guò)掃碼海報(bào)攜帶活動(dòng)二維碼跳轉(zhuǎn)到h5頁(yè)面,并且完成微信授權(quán),完成授權(quán)的用戶進(jìn)入小程序后不再進(jìn)行授權(quán)操作。這里邊涉及到了兩個(gè)大問(wèn)題: 一是怎樣在一個(gè)域名下部署兩個(gè)項(xiàng)目; 二是用戶點(diǎn)擊授權(quán)之后跳轉(zhuǎn)當(dāng)前頁(yè),獲取到code值后,什么時(shí)候向服務(wù)端發(fā)送授權(quán)請(qǐng)求

    2023年04月08日
    瀏覽(17)
  • HTML5(H5)的前生今世

    HTML5(H5)的前生今世

    HTML5是一種用于構(gòu)建和呈現(xiàn)網(wǎng)頁(yè)的最新標(biāo)準(zhǔn)。它是HTML(超文本標(biāo)記語(yǔ)言)的第五個(gè)版本,于2014年由萬(wàn)維網(wǎng)聯(lián)盟(W3C)正式推出。HTML5的前身可以追溯到互聯(lián)網(wǎng)爆發(fā)的早期,當(dāng)時(shí)網(wǎng)頁(yè)設(shè)計(jì)師們面臨著許多限制和挑戰(zhàn)。 在互聯(lián)網(wǎng)的早期階段,網(wǎng)頁(yè)的設(shè)計(jì)和構(gòu)建主要依賴于HTML和C

    2024年02月14日
    瀏覽(15)
  • H5使用微信OAuth2.0授權(quán)登錄,并實(shí)現(xiàn)內(nèi)網(wǎng)調(diào)試。

    H5使用微信OAuth2.0授權(quán)登錄,并實(shí)現(xiàn)內(nèi)網(wǎng)調(diào)試。

    H5實(shí)現(xiàn)微信授權(quán)登錄的流程不在過(guò)多贅述官方文檔傳送門,下面直接上如何在開發(fā)狀態(tài)下實(shí)現(xiàn)授權(quán)登錄調(diào)試。 微信公眾號(hào)的開發(fā)權(quán)限,配置后續(xù)會(huì)講。 內(nèi)網(wǎng)穿透工具。 一個(gè)node服務(wù)點(diǎn)這里koa2快速搭建,傳送門。 如圖所示點(diǎn)擊網(wǎng)頁(yè)授權(quán)域名設(shè)置 將這個(gè)文件txt下載到本地,下面

    2024年02月16日
    瀏覽(20)
  • 前端畢業(yè)設(shè)計(jì)|課程設(shè)計(jì)|基于 HTML5 的健康減脂網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

    前端畢業(yè)設(shè)計(jì)|課程設(shè)計(jì)|基于 HTML5 的健康減脂網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)

    作者主頁(yè):編程指南針 作者簡(jiǎn)介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專家 、掘金特邀作者、多年架構(gòu)師設(shè)計(jì)經(jīng)驗(yàn)、騰訊課堂常駐講師 主要內(nèi)容:Java項(xiàng)目、畢業(yè)設(shè)計(jì)、簡(jiǎn)歷模板、學(xué)習(xí)資料、面試題庫(kù)、技術(shù)互助 收藏點(diǎn)贊不迷路? 關(guān)注作者有好處 文末獲取源碼 ? 語(yǔ)言環(huán)境:HTML5 開

    2024年02月04日
    瀏覽(28)
  • Html5版音樂(lè)游戲制作及分享(H5音樂(lè)游戲)

    Html5版音樂(lè)游戲制作及分享(H5音樂(lè)游戲)

    這里實(shí)現(xiàn)了Html5版的音樂(lè)游戲的核心玩法。 游戲的制作借鑒了,很多經(jīng)典的音樂(lè)游戲玩法,通過(guò)簡(jiǎn)單的代碼將音樂(lè)的節(jié)奏與操作相結(jié)合。 可以通過(guò)手機(jī)進(jìn)行游戲,準(zhǔn)確點(diǎn)擊下落時(shí)的目標(biāo),進(jìn)行得分。 點(diǎn)擊試玩 游戲內(nèi)的下落數(shù)據(jù)是通過(guò)手打記錄的,可能有些偏差哈。 1、Html中

    2023年04月17日
    瀏覽(23)
  • 前端實(shí)現(xiàn)微信支付(H5,微信小程序)

    前端實(shí)現(xiàn)微信支付(H5,微信小程序)

    通常一些電商項(xiàng)目使用到微信支付操作,所以簡(jiǎn)單地介紹一下微信支付的具體流程。 微信支付是微信內(nèi)置微信瀏覽器(其他瀏覽器不支持)或者微信小程序的支付接口,主要負(fù)責(zé)用戶對(duì)商家執(zhí)行支付操作的流程。 例如常見的電商在下單環(huán)節(jié),就需要通過(guò)使用微信支付接口,

    2024年02月08日
    瀏覽(25)
  • 前端H5微信支付寶支付實(shí)現(xiàn)

    前端H5微信支付寶支付實(shí)現(xiàn)

    支付寶的 首先是一個(gè)支付類型選擇頁(yè)面,在選擇支付寶支付后,跳轉(zhuǎn)到一個(gè)空白頁(yè),用于支付寶支付的中轉(zhuǎn)頁(yè)面。 在點(diǎn)擊立即支付之后,直接跳轉(zhuǎn)至自行設(shè)置好的空白頁(yè)就好,并把你生成訂單所需要的數(shù)據(jù)一并帶過(guò)去。 接下來(lái)就是重點(diǎn)操作了(其實(shí)非常簡(jiǎn)單),在跳轉(zhuǎn)這個(gè)

    2024年02月03日
    瀏覽(23)
  • HTML5+CSS3模擬實(shí)現(xiàn)《亮劍》平安縣城一役精彩微信群聊-誰(shuí)開的炮?

    HTML5+CSS3模擬實(shí)現(xiàn)《亮劍》平安縣城一役精彩微信群聊-誰(shuí)開的炮?

    轉(zhuǎn)眼從2005年到現(xiàn)在,《亮劍》已經(jīng)播出多年,但熱度依然不減,而且每次重溫我都會(huì)看出不一樣的意蘊(yùn),今天,我就用 HTML5+CSS3 模擬實(shí)現(xiàn)《亮劍》平安縣城一役精彩 微信群聊 -誰(shuí)開的炮? 目錄 1. 實(shí)現(xiàn)思路 2. 素材介紹 3. 微信群聊頂部 + 底部 + 聊天區(qū)域?qū)崿F(xiàn) 4. 聊天區(qū)域的實(shí)現(xiàn)

    2024年02月02日
    瀏覽(25)
  • 前端之html5

    html5優(yōu)勢(shì): ? ? 語(yǔ)義化標(biāo)簽: ? ? ? ? ? ? 布局標(biāo)簽: ? ? ? ? ? ? ?狀態(tài)標(biāo)簽: ? ? ? ??列表標(biāo)簽: ? ? ? ?文本標(biāo)簽: ? ? ? ? ?表單控件: ? ? ? ? 視頻標(biāo)簽: ? ? ? ? ?音頻標(biāo)簽: ? ? ? ? 全局屬性: article和section區(qū)別: 兼容性處理: ? ? ? ? ? ?1 針對(duì)javascr

    2024年02月13日
    瀏覽(24)
  • html5前端學(xué)習(xí)

    html5前端學(xué)習(xí)

    定義HTML文檔,瀏覽器看到后就明白這個(gè)是HTML文檔,所以其他元素要包裹在它里面,標(biāo)簽限定了文檔的開始點(diǎn)和結(jié)束點(diǎn)。 head標(biāo)簽用于定義文檔的頭部,描述了文檔的各種屬性和信息,包括文檔的標(biāo)題、在Web的位置以及和其他文檔的關(guān)系等,絕大多數(shù)文檔頭部包含的數(shù)據(jù)都不會(huì)

    2024年02月08日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包