溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信小程序授權(quán)登錄流程時序?qū)嵗治?/h1>
發(fā)布時間:2022-04-20 15:32:13 來源:億速云 閱讀:239 作者:iii 欄目:大數(shù)據(jù)

這篇“微信小程序授權(quán)登錄流程時序?qū)嵗治觥蔽恼碌闹R點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“微信小程序授權(quán)登錄流程時序?qū)嵗治觥蔽恼掳伞?/p>

一、微信小程序登錄流程時序

微信小程序授權(quán)登錄流程時序?qū)嵗治?></p><p >說明:</p><ol class=

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

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

  • 臨時登錄憑證code只能使用一次

  • 什么是openid?

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

    • 不同的公眾號,同一個用戶,openid不同

    你可以簡單的理解為

    openid = hash(uid + app_id)

    什么是unionid?

    如果開發(fā)者擁有多個移動應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(包括小程序),可通過unionid來區(qū)分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(包括小程序),用戶的unionid是唯一的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的。UnionID機制說明

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

    • 一個微信開放平臺帳號下可以有多個移動應(yīng)用,網(wǎng)站應(yīng)用,公眾賬號和小程序

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

    用戶在開放平臺的唯一標(biāo)識符

    你可以簡單的理解為:

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

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

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

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

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

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

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

    微信小程序授權(quán)登錄流程時序?qū)嵗治?></p><p >當(dāng)用戶滿足條件2和3時,開發(fā)者可以直接通過wx.login獲取到該用戶的unionid, 否則必須調(diào)用接口<code>wx.getUserInfo</code>,額外需要注意的事就是妥善處理用戶拒絕授權(quán)的情況。</p><h3 id=三、登錄最佳實踐

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

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

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

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

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

    微信小程序授權(quán)登錄流程時序?qū)嵗治?></p><h4 >封裝ajax()</h4><p >在真實的業(yè)務(wù)場景中,我們希望,用戶進入小程序時,未登錄情況下可以正常瀏覽商品,對小程序有個基本的認知,不要直接彈出框要求用戶授權(quán),否則會干擾用戶,導(dǎo)致新用戶的流失,當(dāng)用戶需要使用一些高級功能和場景,這個時候再去要求用戶授權(quán),這樣用戶授權(quán)的幾率會大大提高。<br/>將登錄的邏輯封裝ajax<br/>流程:<br/><img src=以上就是關(guān)于“微信小程序授權(quán)登錄流程時序?qū)嵗治觥边@篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

    向AI問一下細節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI