Authing 社區好文推薦:如何 15 分鐘開發一個很棒的登錄系統
據 Stripe 的一項全球研究,開發人員每周近 75% 的時間花在維護任務上。低代碼開發有助于解決組織數字化轉型的許多常見挑戰:比如提高開發的敏捷性,更快地推出項目抓住商機,更輕松地替換或升級舊系統的關鍵組件,極高的擴展性等。
到 2025 年將有 60% 的 CIO 使用低代碼工具,超過 65% 的應用程序開發將在低代碼環境中進行。
本文由“壹伴編輯器”提供技術支Authing 的低代碼方式,可以幫助開發者在幾分鐘內實施身份認證。
如果您正希望解決身份管理的問題,Authing 已經被驗證提供了一個很棒的方法。以下三種方式,幫助您實現出色的登錄認證:
No Code
使用 Authing 托管登錄頁,無需一行代碼,您可以在幾分鐘內將為您的用戶定制登錄體驗,配置注冊頁面,自定義配置手機/密碼/掃碼以及多種社會化登錄方式、自定義密碼強度配置、主題色配置、注冊信息配置、多因素身份驗證等……
示例:在應用配置中修改登錄注冊方式
示例:在自定義密碼強度中配置密碼強度
Low Code
使用 Authing 提供的內嵌登錄組件,可以集成到您的 Web 和移動端項目中,可以支持完整的 UI 自定義功能,所有資源打包起來只有幾百 kb。
內嵌登錄組件由 Authing 構建和更新,使用行業最佳實踐安全性設計,幾行 JavaScript 代碼就可以集成到您開發的項目中。它可以直接從 CDN 或 NPM 加載,也可以從源代碼構建。Authing 登錄組件同時提供 Javascript 原生、React、Vue 和 Angular 等多種集成模式。
您無需設置完整的開發環境,無需從頭開始編寫代碼,通過運行在云端的 JavaScript 代碼,可以讓您擴展、自定義 Authing 能力;還有大量豐富的函數模板,幫助您快速上手;自定義數據庫,使用自己的數據庫保存用戶數據;自定義處理用戶注冊、登錄等行為監測……
示例:Authing Guard 自動從服務器拉取配置
示例:自動開啟多因素認證
Pro Code
您可以隨需調用 Authing 提供的 1000+ API 以及十余種語言和框架的 SDK 資源,基于此靈活地組合出適合的認證流程和自定義 UI 頁面,快速集成預設的各種主流應用系統,為您的內部/外部用戶實現統一身份管理,創造安全無縫的登錄體驗……
Authing 為前端開發者提供輕量級、開發者友好的 Auth SDK(支持 JavaScript/Node、Java、Python、PHP、C# 等語言),能夠讓您更靈活、快捷、安全地實現認證邏輯。
Authing 提供的托管登錄頁、嵌入登錄組件、Auth SDK 底層能力都是通過 Authentication API 提供的。Authing Authentication API 支持兩種調用方式:RESTful 和 GraphQL(端點為 https://core.authing.cn/graphql/v2),您也可以直接調用 Authentication API 實現認證邏輯。
以五分鐘接入微信網頁授權登錄為例 體驗入口:
https://www.authing.cn/developer/
1. 開發準備
在微信公眾平臺后臺 開發 -> 基本配置 獲取開發者 ID (AppID) 和開發者密碼(AppSecret)。
在微信公眾平臺后臺 設置 -> 公眾號設置 -> 功能設置 設置網頁授權域名。
域名填寫:core.authing.cn。
出于安全驗證考慮,微信服務器需要和 Authing 服務器做一次請求驗證,開發者需要下載 txt 文件,并記錄文件名和文本內容。
最后,在 Authing 控制臺 連接身份源 -> 社會化登錄 開啟微信網頁授權登錄,并填寫配置信息。
示例:配置信息表單
2. 安裝
使用 CDN 引入 authing-wxmp-sdk
- <script src="https://cdn.jsdelivr.net/npm/@authing/wxmp/dist/authing-wxmp-sdk.min.js"></script>
使用 npm / yarn
- npm install --save @authing/wxmp
或者
- yarn add @authing/wxmp
然后通過以下方式引入
- import AuthingWxmp from "@authing/wxmp";
3. 發起微信授權
先從 Authing 控制臺中獲取用戶池 ID
- const authingWx = new AuthingWxmp({ userPoolId: 'YOUR_USERPOOLID',})
調用 getAuthorizationUrl 方法獲取微信授權登錄鏈接,修改 window.location 跳轉到微信登錄授權頁面
- // 跳轉到微信授權頁面window.location = authingWx.getAuthorizationUrl()
4. 獲取用戶信息
- // 若在回調頁面 authingWx 未初始化,需要先初始化,具體初始化方式參考上文const { ok, userinfo, message } = authingWx.getUserInfo()if (ok) { // do with userinfo console.log(userinfo)} else if (message) { // message 中包含了錯誤提示 alert(message)}
5. 使用 token 維持登錄狀態
以 axios 為例:
- const axios = require("axios");axios .get({ url: "https://yourdomain.com/api/v1/your/resources", headers: { Authorization: "Bearer ID_TOKEN", }, }) .then((res) => { // custom codes });
識別用戶身份之后,可能還需要對該用戶進行權限管理,以判斷用戶是否對此 API 具備操作權限。
6. 總結授權流程
· 開發者引導用戶跳轉到 Authing 設置的授權鏈接:
https://oauth.authing.cn/oauth/wechatmp/url:userPoolId。
· Authing 和微信根據 OAuth 協議完成用戶信息交互。
· Authing 將用戶信息(包含 token)發送到開發者自定義的業務回調鏈接。
· 開發者使用 token 維持登錄狀態,檢驗 token 的合法性以及登錄狀態。
· 終端用戶后續的請求將 token 攜帶上。
· 開發者在后端調用 Authing 提供的方法檢驗 token 的合法性以及登錄狀態。
· 根據 Authing 返回的登錄狀態和開發者自己的業務邏輯,對請求進行相應處理。
































