輕量級開源用戶身份驗(yàn)證解決方案 - Hanko
Hanko 是一個(gè)輕量級的開源用戶身份驗(yàn)證解決方案,是一個(gè) Auth0 的開源替代品。該項(xiàng)目是一個(gè)由六個(gè)開發(fā)人員和設(shè)計(jì)師組成的團(tuán)隊(duì),項(xiàng)目的任務(wù)是徹底改變我們的在線認(rèn)證方式。在過去的 4 年里,團(tuán)隊(duì)一直在研究網(wǎng)絡(luò)和移動(dòng)端的用戶認(rèn)證,然后決定將團(tuán)隊(duì)所學(xué)到的所有知識投入到一個(gè)開源項(xiàng)目中。
但為什么是另一個(gè)認(rèn)證解決方案呢?
因?yàn)殡S著密碼的第一個(gè)重要替代物 - passkeys 的出現(xiàn),我們驗(yàn)證網(wǎng)站和應(yīng)用程序的方式將發(fā)生根本性的變化,而這種變化使我們能夠重新思考用戶登錄的工作方式。而 Hanko 則就是這樣的一個(gè)開源項(xiàng)目。
特性
Hanko 具有非常多的特性:
- 開放源碼的用戶認(rèn)證:首先,Hanko? 是一個(gè)開源的用戶認(rèn)證解決方案,特別容易集成到網(wǎng)站和 app。Hanko 提供了一個(gè)網(wǎng)絡(luò)組件,可用于現(xiàn)代前端框架(Vanilla JS、React、Next、Vue......),并可通過 CSS 完全定制,完美地融入品牌。
- 我們的密碼是什么?有一件事我們做得與其他人不同,我們退一步看了看認(rèn)證技術(shù)的發(fā)展方向。在互聯(lián)網(wǎng)最具影響力的標(biāo)準(zhǔn)機(jī)構(gòu) W3C 的幕后,一個(gè)永久替代密碼的愿景已經(jīng)形成。經(jīng)過多年的醞釀,這一替代方案終于在今年得以實(shí)現(xiàn),它被稱為 passkeys。
- 使用通行證的無密碼賬戶:有史以來第一次,通行證實(shí)現(xiàn)了真正的無密碼認(rèn)證體驗(yàn)。與最近的其他技術(shù)(如 Magic Links 或發(fā)送到你手機(jī)上的代碼)不同,Hanko 的通行證實(shí)現(xiàn)提供了一種方便且非常安全的登錄體驗(yàn),不需要切換上下文。通過結(jié)合生物識別技術(shù)和密碼質(zhì)詢-響應(yīng)協(xié)議,passkeys 可有效防止網(wǎng)絡(luò)釣魚和 SIM 卡交換等最常見的攻擊。99% 的情況下,passkeys 登錄是使用 Touch ID 或 Face ID 及其同等的生物識別登錄,勢必會得到這些技術(shù)在被引入解鎖我們的手機(jī)后的 90% 以上的采用率,我們?yōu)檫@種變化構(gòu)建了 Hanko。
- 無密碼之旅從密碼開始:Hanko 是圍繞著 passkeys 登錄體驗(yàn)而定制的,引導(dǎo)用戶遠(yuǎn)離密碼。但我們確保不會忘記今天所有人都在使用的東西,那就是密碼。這就是為什么我們?nèi)匀话ǎ蛇x擇的)密碼支持以及所有必要的用戶流,以結(jié)合傳統(tǒng)的密碼使用行為和新的 passkeys 用戶體驗(yàn)。
- 對于建設(shè)者來說:Hanko 是一個(gè)具有超強(qiáng)功能的認(rèn)證解決方案,專注于即將到來的從密碼到 passkeys 的旅程。Hanko 是那些正在尋找現(xiàn)代認(rèn)證解決方案的團(tuán)隊(duì)的完美選擇,同時(shí)也是每一個(gè)想要接受 passkeys 的現(xiàn)有登錄者的理想插件。
安裝
要使用 Hanko 最快的方式是使用 docker-compose。首先 clone 項(xiàng)目:
$ git clone https://github.com/teamhanko/hanko.git
然后在 hanko 目錄下面執(zhí)行下面的命令:
$ docker-compose -f deploy/docker-compose/quickstart.yaml -p "hanko-quickstart" up --build
服務(wù)啟動(dòng)并運(yùn)行后,可以在 localhost:8888 打開示例登錄。為了在沒有您自己的 smtp 服務(wù)器的情況下接收電子郵件,我們添加了 mailslurper,它將在 localhost:8080 可用。
整個(gè) Hanko 項(xiàng)目包括 3 個(gè)核心的模塊:
- backend:身份驗(yàn)證 API,支持 passkeys、passcodes 和 password,以及用戶管理和 JWT 令牌發(fā)行
- hanko-js:為 Hanko 后端制作的 Web 組件,具有出色的登錄體驗(yàn),并且高度可定制
- example:快速入門示例應(yīng)用程序,展示 Hanko 的優(yōu)勢并作為參考實(shí)現(xiàn)
Hanko 項(xiàng)目方也提供了一個(gè)在線的示例網(wǎng)站 https://example.hanko.io/ 供我們體驗(yàn),感興趣的朋友可以前往測試體驗(yàn)。比如在瀏覽器端使用 passkey 進(jìn)行登錄的時(shí)候會彈出如下所示的對話框讓我們?nèi)ミx擇認(rèn)證的方式,可以直接使用當(dāng)前設(shè)備、添加一部 Android 手機(jī)或者 USB 連接的設(shè)備等等。
Git 倉庫:https://github.com/teamhanko/hanko。