小程序登錄授權流程詳解

一、小程序登錄授權流程圖

在開始闡述小程序登錄授權流程之前,可以先簡單地介紹一下小程序登錄授權流程圖,方便大家更好地理解整個流程。


+---------------------+              +---------------------+
|                     |              |                     |
|      微信小程序      |              |       微信開放平台     |
|                     |              |                     |
+---------------------+              +---------------------+
           |                                     |
           |            1. 小程序請求授權        |
           +----------------------------------->|
           |            2. 授權登錄頁面          |
           ||
           |                                     |
           |           4. 登錄成功,返回code      |
           ||
           |                                     |
           |           6. session_key解密用戶信息 |
           +----------------------------------->|
           |                                     |
           |           7. 返回用戶信息            |
           |<-----------------------------------+
           |                                     |

二、小程序授權登錄流程

當用戶使用小程序時,小程序需要獲取用戶的基本信息作為登錄或其他業務的憑證。因此,小程序需要在用戶授權登錄之後才能獲取用戶信息。

小程序授權登錄流程如下:

  1. 小程序先向微信開放平台請求授權,請求後,微信開放平台會返回一個授權登錄頁面的url地址;
  2. 小程序將該授權登錄頁面url地址返回給小程序端;
  3. 小程序將該url地址傳給網頁組件,網頁組件會在小程序中打開該授權登錄頁面;
  4. 用戶在授權登錄頁面上輸入自己的微信賬號和密碼進行登錄驗證;
  5. 當用戶登錄成功後,微信開放平台會返回一個code碼給小程序端;
  6. 小程序通過該code碼向微信開放平台請求換取用戶的openid和session_key,微信開放平台返回用戶信息;
  7. 小程序獲取到用戶的openid和session_key成功之後,就可以實現相應業務的邏輯。

三、小程序登錄驗證授權過程

在上一節中,我們已經講解了小程序的授權登錄流程,在這一節中,我們深入探索一下如何進行小程序登錄驗證授權。

首先,在小程序中,要使用微信登錄功能必須要先申請相應的權限和信息,這一步需要在微信公眾平台進行操作。在微信公眾平台上,我們可以進行後台配置,在小程序工程下的’ 開發 -  開發設置』 中,可以配置小程序的AppID和AppSecret,在『 小程序登錄』 項中可以進行相關配置。

接下來,我們在小程序的相應頁面進行登錄授權業務時,需要構造如下一個授權URL:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxappid&redirect_uri=url&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect

參數說明:

  • appid: 小程序的appID;
  • redirect_uri: 授權後重定向的回調鏈接地址,請使用url進行編碼;
  • response_type: 返回類型,請填寫code;
  • scope: 應用授權作用域,固定值snsapi_login;
  • state: 任意字符串,用於保持請求和回調的狀態,授權請求後原樣帶回給小程序.

例如:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxappid&redirect_uri=http%3A%2F%2Fwww.baidu.com&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect

當小程序拼接好授權URL之後,然後載入授權URL即可,它會跳轉到登錄頁面,用戶進行登錄之後,會回調到小程序設置的回調鏈接地址,並帶上code,小程序接下來可以通過code獲取用戶信息。

例如,當用戶登錄驗證成功之後,會回調到如下地址:

http://www.baidu.com/?code=001xxxxxxx&state=STATE

小程序可以從這個返回鏈接中的code參數獲取到用戶的code碼,拿到code碼之後,就可以進行用戶信息的獲取。

四、小程序授權流程圖

我們來看一下小程序授權流程圖,它可以幫助我們更好的理解小程序授權登錄的整個流程。


+---------------------+                       +---------------------+
|                     |                       |                     |
|      微信小程序      |                       |       微信開放平台     |
|                     |                       |                     |
+---------------------+                       +---------------------+
           |                                            |
           |         1. 接收授權事件通知                 |
           +------------------------------------------->|
           |                                            |
           |          2. 構造授權鏈接,跳轉授權頁         |
           ||
           |                                            |
           |          4. 根據返回的code獲取access_token   |
           ||
           |                                            |
           |          6. 返回用戶信息                    |
           |<-------------------------------------------+
           |                                            |

五、微信小程序實現登錄流程

微信小程序實現登錄流程主要有以下幾個步驟:

  1. 首先,在小程序開發者平台的’設置’➡️’開發設置’➡️’小程序登錄’中設置授權回調域名。
  2. 在小程序中,使用wx.login()獲取用戶code碼,並將code碼傳到服務端;
  3. 服務端在收到code碼後,使用code碼通過微信API可換取access_token、openid和unionid(如果你在小程序後台配置了「獲取用戶基本信息」,且用戶已經同意授權)。如果沒有用戶基本信息,也可以通過access_token換取用戶信息。
  4. 服務端獲取到access_token和openid之後,可以進行相應的業務邏輯。

六、微信小程序授權給別人

微信小程序開放了小程序間的授權和分享API,可以方便地實現小程序間的數據傳輸和操作。

微信小程序授權給別人,需要完成以下幾個步驟:

  1. 在小程序後台’設置’➡️’第三方授權’中添加授權方的appId;
  2. 被授權方在小程序中實現授權登錄,獲取到授權碼;
  3. 被授權方將授權碼傳遞到授權方的小程序服務端進行校驗,如果校驗成功,授權方就可以拿到該用戶的信息了。

七、小程序拒絕授權恢復

小程序是否授權不能直接使用,但可以通過異常處理機制對用戶的授權狀態進行判斷。

例如,在一個小程序中,用戶打開某個頁面需要授權登錄。如果用戶沒有授權,小程序就需要引導用戶進行授權,可以彈出一個授權的對話框,請求用戶授權,如果用戶拒絕授權,可以使用小程序的返回首頁或者退出應用的方式,讓用戶發現自己需要授權才可以進行相關業務操作。

在小程序中,使用wx.getSetting()獲取用戶授權狀態,如果用戶沒有授權,可以使用wx.authorize()引導用戶進行授權。

在用戶授權後,如果用戶想要重新拒絕授權或撤回授權,可以使用小程序提供的wx.openSetting()函數進行調用,跳轉至授權設置頁面,讓用戶進行相應的操作。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192560.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 10:28
下一篇 2024-12-01 10:28

相關推薦

  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟件。在VB中,有許多不同的方法可以運行程序,包括編譯器、發佈程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨着深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟件開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • 改善Python程序的90個建議pdf網盤

    本文將從多個方面對改善Python程序的90個建議pdf網盤進行詳細闡述,幫助Python開發者提高程序的性能和效率。 一、代碼優化 1、使用map函數或列表推導式代替for循環。…

    編程 2025-04-29

發表回復

登錄後才能評論