中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

微信小程序中授權(quán)登錄的示例分析-創(chuàng)新互聯(lián)

這篇文章主要介紹微信小程序中授權(quán)登錄的示例分析,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),堆龍德慶企業(yè)網(wǎng)站建設(shè),堆龍德慶品牌網(wǎng)站建設(shè),網(wǎng)站定制,堆龍德慶網(wǎng)站建設(shè)報(bào)價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,堆龍德慶網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

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

微信小程序中授權(quán)登錄的示例分析


說明:

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

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

  3. 臨時登錄憑證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àn)橹灰峭粋€微信開放平臺帳號下的移動應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(包括小程序),用戶的unionid是的。換句話說,同一用戶,對同一個微信開放平臺下的不同應(yīng)用,unionid是相同的。UnionID機(jī)制說明

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

  • 一個微信開放平臺帳號下可以有多個移動應(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。所以在用戶登錄進(jìn)來的時候,我們只能靠微信返回給我們的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)登錄的示例分析


當(dāng)用戶滿足條件2和3時,開發(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),在界面中顯示一個按鈕提示用戶登入,當(dāng)用戶點(diǎn)擊并授權(quán)后就獲取到用戶的新信息。

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

微信小程序中授權(quán)登錄的示例分析


封裝ajax()

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


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

以上是“微信小程序中授權(quán)登錄的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文標(biāo)題:微信小程序中授權(quán)登錄的示例分析-創(chuàng)新互聯(lián)
文章地址:http://www.rwnh.cn/article38/cegcsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)商城網(wǎng)站、網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
庐江县| 龙海市| 当雄县| 陇川县| 六盘水市| 积石山| 荥经县| 都安| 清镇市| 平山县| 衡东县| 吉安市| 富裕县| 嘉兴市| 博乐市| 峨眉山市| 绥化市| 眉山市| 柯坪县| 宁德市| 辽源市| 怀集县| 甘孜| 阿克苏市| 平乐县| 尤溪县| 兴山县| 武邑县| 城市| 类乌齐县| 北海市| 桂林市| 宾川县| 尉氏县| 新竹市| 龙岩市| 比如县| 景泰县| 长海县| 伊宁市| 平武县|