真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

微信小程序授權(quán)登錄流程時(shí)序的示例分析

小編給大家分享一下微信小程序授權(quán)登錄流程時(shí)序的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

新區(qū)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

最近在做一個(gè)微信小程序開發(fā)的項(xiàng)目。場(chǎng)景布置:同一微信開放平臺(tái)下?lián)碛邢嗤黧w的APP和微信小程序來完成同樣的業(yè)務(wù),用戶進(jìn)入app或者微信小程序時(shí)必須獲取用戶的unionid來確認(rèn)當(dāng)前的用戶身份,完成登錄。小程序“獲取用戶信息”api(getUserInfo)的調(diào)用方式和之前相比有了較大更新,優(yōu)雅的實(shí)現(xiàn)用戶授權(quán)和登錄非常重要,以下是我在微信小程序授權(quán)登錄相關(guān)流程在開發(fā)時(shí)候的實(shí)現(xiàn)思路和總結(jié),分享如下。

一、微信小程序登錄流程時(shí)序

微信小程序授權(quán)登錄流程時(shí)序的示例分析

說明:

  1. 小程序調(diào)用wx.login() 獲取 臨時(shí)登錄憑證code ,并回傳到開發(fā)者服務(wù)器

  2. 開發(fā)者服務(wù)器以code換取 用戶唯一標(biāo)識(shí)openid 和 會(huì)話密鑰session_key。

  3. 臨時(shí)登錄憑證code只能使用一次

什么是openid?

在關(guān)注者與公眾號(hào)產(chǎn)生消息交互后,公眾號(hào)可獲得關(guān)注者的OpenID(加密后的微信號(hào),每個(gè)用戶對(duì)每個(gè)公眾號(hào)的OpenID是唯一的。對(duì)于不同公眾號(hào),同一用戶的openid不同)?!⑿殴娖脚_(tái)開發(fā)者文檔
  • 普通用戶的標(biāo)識(shí),對(duì)當(dāng)前公眾號(hào)唯一

  • 不同的公眾號(hào),同一個(gè)用戶,openid不同

你可以簡(jiǎn)單的理解為

openid = hash(uid + app_id)

什么是unionid?

如果開發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(hào)(包括小程序),可通過unionid來區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對(duì)同一個(gè)微信開放平臺(tái)下的不同應(yīng)用,unionid是相同的。UnionID機(jī)制說明

如果開發(fā)者在多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)之間有統(tǒng)一用戶賬號(hào)的需求,需要前往微信開放平臺(tái)(open.weixin.qq.com)綁定公眾號(hào)后,便可利用UnionID機(jī)制來滿足上述需求。

  • 一個(gè)微信開放平臺(tái)帳號(hào)下可以有多個(gè)移動(dòng)應(yīng)用,網(wǎng)站應(yīng)用,公眾賬號(hào)和小程序

  • 只要是同一個(gè)微信開放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。

用戶在開放平臺(tái)的唯一標(biāo)識(shí)符

你可以簡(jiǎn)單的理解為:

unionid = hash(uid + 開放平臺(tái)id)

總結(jié)下
微信針對(duì)不同的用戶在不同的應(yīng)用下都有唯一的一個(gè)openId, 但是要想確定用戶是不是同一個(gè)用戶,就需要靠unionid來區(qū)分。一般自己的后臺(tái)都會(huì)有自己的一個(gè)用戶表,每個(gè)用戶有不同的userid。也就是說同一個(gè)用戶在同一個(gè)微信開放平臺(tái)下的相同主體的應(yīng)用對(duì)應(yīng)著相同的userid,unionid以及不同的openid。所以在用戶登錄進(jìn)來的時(shí)候,我們只能靠微信返回給我們的unionid去判斷是不是同一個(gè)用戶,在去關(guān)聯(lián)我們的用戶表,拿到對(duì)應(yīng)的userid。

二、微信小程序如何獲取unionid?

綁定了開發(fā)者帳號(hào)的小程序,可以通過下面3種途徑獲取UnionID。

  1. 調(diào)用接口wx.getUserInfo,從解密數(shù)據(jù)中獲取UnionID。注意本接口需要用戶授權(quán),請(qǐng)開發(fā)者妥善處理用戶拒絕授權(quán)后的情況。

  2. 如果開發(fā)者帳號(hào)下存在同主體的公眾號(hào),并且該用戶已經(jīng)關(guān)注了該公眾號(hào)。開發(fā)者可以直接通過wx.login獲取到該用戶UnionID,無須用戶再次授權(quán)。

  3. 如果開發(fā)者帳號(hào)下存在同主體的公眾號(hào)或移動(dòng)應(yīng)用,并且該用戶已經(jīng)授權(quán)登錄過該公眾號(hào)或移動(dòng)應(yīng)用。開發(fā)者也可以直接通過wx.login獲取到該用戶UnionID,無須用戶再次授權(quán)。

微信小程序授權(quán)登錄流程時(shí)序的示例分析

當(dāng)用戶滿足條件2和3時(shí),開發(fā)者可以直接通過wx.login獲取到該用戶的unionid, 否則必須調(diào)用接口wx.getUserInfo,額外需要注意的事就是妥善處理用戶拒絕授權(quán)的情況。

三、登錄最佳實(shí)踐

  1. 調(diào)用 wx.login 獲取 code。

  2. 使用 wx.getSetting 獲取用戶的授權(quán)情況

    • 如果用戶已經(jīng)授權(quán),直接調(diào)用 API wx.getUserInfo 獲取用戶最新的信息;

    • 用戶未授權(quán),在界面中顯示一個(gè)按鈕提示用戶登入,當(dāng)用戶點(diǎn)擊并授權(quán)后就獲取到用戶的最新信息。

  3. 將獲取到的用戶數(shù)據(jù)連同wx.login返回的code一同傳給后端

微信小程序授權(quán)登錄流程時(shí)序的示例分析

封裝ajax()

在真實(shí)的業(yè)務(wù)場(chǎng)景中,我們希望,用戶進(jìn)入小程序時(shí),未登錄情況下可以正常瀏覽商品,對(duì)小程序有個(gè)基本的認(rèn)知,不要直接彈出框要求用戶授權(quán),否則會(huì)干擾用戶,導(dǎo)致新用戶的流失,當(dāng)用戶需要使用一些高級(jí)功能和場(chǎng)景,這個(gè)時(shí)候再去要求用戶授權(quán),這樣用戶授權(quán)的幾率會(huì)大大提高。
將登錄的邏輯封裝ajax
流程:
微信小程序授權(quán)登錄流程時(shí)序的示例分析

封裝的意義
不再關(guān)注當(dāng)前接口是否需要登錄,用戶是否已授權(quán),所有請(qǐng)求直接調(diào)用ajax(),在必要的時(shí)候完成一切登錄以及授權(quán)流程。小程序入口頁面增加,業(yè)務(wù)拓展的時(shí)候,你只需要專注于業(yè)務(wù)實(shí)現(xiàn)。

以上是“微信小程序授權(quán)登錄流程時(shí)序的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:微信小程序授權(quán)登錄流程時(shí)序的示例分析
網(wǎng)頁路徑:http://weahome.cn/article/jdojgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部