一个功能超全的「登录认证」神器!
公眾號關(guān)注?“GitHubDaily”
設(shè)為?“星標”,每天帶你逛 GitHub!
大家好,我是小 G。
用戶身份認證與管理,可以說是每個開發(fā)者在搭建項目時,難以規(guī)避的主要業(yè)務(wù)模塊。因涉及到信息驗證、數(shù)據(jù)安全、權(quán)限管理等多個開發(fā)環(huán)節(jié),使得該模塊在項目被稱為地基般的存在。
在我早期開發(fā)項目時,技術(shù)圈內(nèi)沒有比較成熟的開發(fā)框架與第三方 SDK,因此時常需要手寫一整套用戶登錄認證系統(tǒng)。
從第一步的信息錄入正則驗證、數(shù)據(jù)加密傳輸存儲、access token & session 生命周期管理、權(quán)限驗證。最后,興許還要對接第三方平臺,授權(quán)登錄。
整個開發(fā)過程,加上中間的服務(wù)器 — 客戶端聯(lián)調(diào)測試環(huán)節(jié),最終執(zhí)行下來,實在耗時不菲,更別說后面的項目迭代與功能維護了。
雖說今時已不同往日,多種開發(fā)框架已內(nèi)置了注冊登錄的腳手架生成功能,以及第三方 SDK 的擴展支持。
但是,在此其中,大部分只是做了簡單的流程封裝處理,還是沒有真正從使用者的需求出發(fā),一步到位搞定「用戶身份認證與管理」,這個在開發(fā)中最為核心的環(huán)節(jié)。
隨著技術(shù)的更新與發(fā)展,近幾年,市面上又開始流行人臉識別、指紋識別、圖形解鎖等不同登錄驗證方式。如此種種,進一步加大開發(fā)者的工作量。
我理想中的「登錄認證」集成工具,應(yīng)該符合便捷、安全、可擴展性強、學(xué)習(xí)成本低、功能齊全等幾項條件。
看到此處,興許有人會認為是癡人說夢。質(zhì)量、效率、成本這個黃金鐵三角,怎么可能做到面面俱到。
不過,就在前幾天周末,讓我無意間發(fā)現(xiàn)了一款可完美契合上述條件的開發(fā)神器:Authing。
今天就跟大家好好聊聊,這款令我愛不釋手的神器,究竟有多強大。
Authing 是一家專注于 IDaaS 的身份驗證服務(wù)商,從實際功能上來說,它已突破了普通開發(fā)工具的定義,成為現(xiàn)代項目開發(fā)中,一套可覆蓋多平臺、多場景使用的「用戶身份驗證」標準解決方案。
在線體驗:https://signin.authing.cn/p/bd884
強悍無比的 Guard
Authing 最令人稱道的一點,是它提供了一套「即取即用」的登錄表單工具:Guard。
當你在項目中安裝指定的擴展包后,即可在后臺通過可視化界面,快速設(shè)置各項登錄認證信息。
比如,開發(fā)者可根據(jù)自身需求,快速設(shè)置賬號登錄方式、密碼找回、第三方接入平臺、登錄頁面背景、品牌化 Logo 展示等多種屬性。
短短幾分鐘內(nèi),快速創(chuàng)建一個可嵌入登錄表單,并將其應(yīng)用于多種場景。
當表單創(chuàng)建成功后,你還可以一鍵開啟多種不同形式的多因素認證。比如常見的短信與郵箱驗證、人臉與指紋識別等,很是方便。
Guard 為開發(fā)者屏蔽了很多底層認證的實現(xiàn)細節(jié),通過可視化界面與簡單的代碼配置,甚至還能實現(xiàn)諸如單點登錄 SSO、自建 App 掃碼認證等高級功能。
去除一些 UI 設(shè)計、界面實現(xiàn)等工作,讓我們可以更加專注于產(chǎn)品業(yè)務(wù)本身。
集成方便、開箱即用
為了讓每個開發(fā)者都可以輕松上手,Authing 針對不同開發(fā)環(huán)境與平臺,單獨封裝了獨立的 SDK,開發(fā)者通過現(xiàn)有的 1000 個業(yè)務(wù)系統(tǒng)接口,無需開發(fā),通過簡單配置,即可對接整套方案。
平臺還提供了數(shù)十個 API 開放接口,協(xié)助用于項目登錄信息與組織管理、用戶權(quán)限分配等場景。
如果要列舉當下接入最為頻繁的第三方登錄平臺,微信應(yīng)當首屈一指。
雖說目前在 GitHub 上存在不少微信登錄的開源 SDK,可惜大多做的都沒有 Authing 全面。
從微信網(wǎng)頁授權(quán)、小程序掃碼,到公眾號掃碼關(guān)注、小程序調(diào)用授權(quán),所有的登錄模式應(yīng)有盡有。
開發(fā)者需要做的,就是在后臺填入對應(yīng)的微信 AppID、AppSecret、令牌等驗證信息,即可快速完成對接。
對接成功后,便可使用 Authing 平臺所提供的接口,判斷用戶微信登錄狀態(tài),獲取用戶信息。
接口的定義簡單且直觀,作為一名后端開發(fā)者,用著很是舒服。
除微信外,Authing 還支持微博、GitHub、Twitter、支付寶等國內(nèi)外多家主流平臺的第三方授權(quán)登錄方式。
為了讓開發(fā)者對登錄認證這一環(huán)節(jié)的理解更加深入,平臺技術(shù)團隊甚至還編寫了一系列中文文檔與教程,詳細解釋身份認證的相關(guān)技術(shù)知識。
里面包括單點登錄、認證 & 授權(quán)、OAuth 2.0 協(xié)議、掃碼登錄原理解析等內(nèi)容,可以說是非常貼心了。
CIAM 為王!
過去幾十年,互聯(lián)網(wǎng)上大部分軟件項目采用了 IAM(Identity and Access Managetment)模式,即「身份和訪問管理」作為登錄系統(tǒng)的實現(xiàn)原理。
簡單來說,就是項目的登錄認證系統(tǒng),沒有進行明顯的用戶身份劃分,不管你是企業(yè)員工,還是某個社交平臺的普通用戶,其背后的登錄注冊邏輯都是一樣的,這就間接導(dǎo)致一些數(shù)據(jù)沒有得到很好的利用。
面對當下信息大爆炸的互聯(lián)網(wǎng)時代,IAM 這種模式顯然已不太適合。因此,自 2015 年開始,便有人開始推行 CIAM(Customer Identity & Access Management)模式,即以顧客為核心的身份管理方案。
在該模式下,開發(fā)者可以捕捉用戶在不同場景下的數(shù)據(jù)變動,以便對產(chǎn)品功能進行調(diào)整,提升用戶留存與粘性。必要時,還能對原本的身份認證邏輯進行改動,以適應(yīng)互聯(lián)網(wǎng)的發(fā)展速度。
此時,整套用戶身份認證系統(tǒng)的靈活性與可擴展性,將會面臨真正挑戰(zhàn)。
但在 Authing 中,我們可以利用平臺提供的 Webhook 功能,輕松監(jiān)聽用戶的登錄、認證、權(quán)限狀態(tài),在指定事件被觸發(fā)時,及時做出響應(yīng)。
開發(fā)者需要做的,就是在 Authing 后臺配置好 Webhook 的 HTTP URL,當事件被觸發(fā)時,平臺會給該 URL 發(fā)送一個 POST 請求。請求收到后,即可做出相應(yīng)處理。
如果想采用更為靈活的事件調(diào)用機制,也可以通過 Authing Pipeline 來實現(xiàn)。
簡單來說,Authing Pipeline 是一段自定義的 JavaScript 代碼,支持在云端運行。
每個 Pipeline 可作為一組函數(shù),互相傳遞函數(shù)數(shù)據(jù)。在封裝為具體功能模塊后,可以很方便的嵌套到各個登錄認證環(huán)節(jié)中使用,讓項目開發(fā)流程像工業(yè)流水線一般高效運轉(zhuǎn)與管理。
通過 Pipeline 所提供的功能,開發(fā)者能夠?qū)崿F(xiàn)諸如注冊 IP 白名單管理、用戶權(quán)限自動分配、登錄 IP 異常通知、自定義用戶 token 字段等功能。
安全感爆棚
對于一些云服務(wù)工具來說,開發(fā)者們更看重的往往是其安全性。用戶身份認證會涉及到項目的核心數(shù)據(jù),其重要性更是不言而喻。
為此,我專門看了下平臺關(guān)于信息安全這塊的處理工作,發(fā)現(xiàn)他們做的還是十分到位的。
首先,Authing 支持自部署,有條件的開發(fā)者,可選擇部署到私有云服務(wù)器。在前端、中臺、后端等不同位置,還提供了全鏈路安全防護舉措。通過 HTTPS 進行安全傳輸,再利用 KMS 對數(shù)據(jù)與字段進行加密解密。
不僅如此,平臺還能針對用戶行為、管理員行為及應(yīng)用訪問情況,進行可視化安全審計,協(xié)助開發(fā)者完成風險控制。
在用戶使用層面,Authing 也提供密碼強度檢測機制,當用戶設(shè)置一些過于簡單的密碼時,會立即給出風險提示。另外還有密碼輪換策略,在指定周期內(nèi),引導(dǎo)用戶定期對密碼進行更新。
如果你對平臺的密碼加密算法不放心,也可以隨時選擇替換為自己的算法,靈活且自由。
不過像這種能夠服務(wù)可口可樂、招商銀行、元氣森林等大企的云平臺。信息安全方面,肯定是有著充分保障的。
寫在最后
電影《功夫》中,火云邪神曾說過這么一句話,"天下武功,無堅不摧,唯快不破"。
將其應(yīng)用到 Authing 這個身份認證平臺上,"無堅不摧" 可代表其強悍的信息安全防御機制,"唯快不破" 則在 Guard 這套低代碼「身份認證」搭建方案上得到了充分體現(xiàn)。
手握如此一柄利器,在開發(fā)項目時,各種與用戶身份權(quán)限掛鉤的業(yè)務(wù)需求,那不是信手拈來。
當你有下面這些需求時,嘗試用 Authing 來實現(xiàn),或許能給到你直呼「過癮」的使用體驗:
快速搭建一個擁有注冊登錄功能的新項目;
對接微信、GitHub 等第三方平臺;
用戶訪問敏感數(shù)據(jù)時執(zhí)行多重身份驗證;
禁用惡意 IP,防止 DDOS 手段攻破密碼;
使用 OAuth 2.0 協(xié)議保證 API 的安全;
讓用戶使用一次性的手機驗證碼或郵箱驗證碼登錄;
企業(yè)內(nèi)部應(yīng)用的登錄權(quán)限分配與管理;
密碼在其它平臺泄露時,自動發(fā)送郵件提醒。
一步到位,解決跟「用戶身份認證與管理」相關(guān)的所有需求,是 Authing 于我而言,最大的魅力所在。
對該項目感興趣的同學(xué),可訪問下方地址,或點擊閱讀原文,快速體驗。
在線體驗:https://signin.authing.cn/p/bd884
總結(jié)
以上是生活随笔為你收集整理的一个功能超全的「登录认证」神器!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【许晓笛】 EOS智能合约案例解析(1)
- 下一篇: 第十一届 蓝桥杯 单片机设计与开发项目