開發人員指南:如何實施Passkeys
>本指南向開發人員展示瞭如何添加基於Passkey的身份驗證以獲得更好的安全性和用戶體驗。 它可以解釋手動服務器和客戶端設置,以及如何通過視覺界面和預構建的流量簡化下降。
>本教程由印度的軟件開發人員和技術作者Kumar Harsh撰寫。在他的網站上查看他的更多作品! 使用PassKeys改善了應用程序安全性和用戶的便利性。本指南詳細詳細介紹了Passkey實施,從設置到部署。 按照這些步驟創造安全且用戶友好的身份驗證體驗,減少未經授權的訪問和構建用戶信任。
passkey身份驗證:基礎知識
>與脆弱的密碼不同,Passkeys使用公開密碼學來增強安全性和用戶體驗。想想一個保險庫:您的身份是可以確保的,只能使用獨特的密鑰對訪問。 Passkey的工作類似;每個用戶都有一個私鑰(安全存儲在其設備上),並且與網站共享一個公共密鑰。
這是一個視覺表示:
圖:Passkey身份驗證儀式
>
通常,手動實現涉及:
服務器端設置:
這包括密鑰生成,簽名驗證,證明處理以及用於用戶信息和Passkey憑據的數據庫集成。>
前端集成:- >使用JavaScript的
- 和,客戶端通過Authenticator Interactions(指紋掃描,引腳等)指導用戶,並將數據發送到服務器。 庫,例如簡單的Webauthn,簡化了這一點。 它處理密鑰生成,使過程比手動方法更容易。
- >
(React Client和Node.js Express Server示例使用SimpleWebauthn可用。)
navigator.credentials.create()
navigator.credentials.get()
>服務器端設置(使用SimpleWebauthn)
服務器使用四個關鍵端點的
>軟件包:-
/generate-registration-options
:為客戶端配置和生成註冊選項,以防止同一設備中的多個註冊。 它也會產生一個挑戰。 -
/verify-registration
:在數據庫中驗證成功的設備註冊並保存用戶詳細信息(公共密鑰,憑據ID,設備信息)。 -
/generate-authentication-options
:返回身份驗證選項,檢索註冊的設備ID。 -
/verify-authentication
:使用註冊設備驗證成功的設備身份驗證。
這個示例省略數據庫集成;您需要將其添加到生產使用中。
客戶端設置(使用simplewebauthn)
>客戶需要兩個按鈕(用於註冊和身份驗證)。 onRegistrationStart
>從/generate-registration-options
>請求配置,然後使用startRegistration()
>。 成功註冊後,@simple-webauthn/browser
驗證結果。 身份驗證遵循類似的模式,使用/verify-registration
>,/generate-authentication-options
和startAuthentication()
。 /verify-authentication
。
>
更簡單的方法:用discope 實現Passkey
> Descope簡化了Passkey實現,消除了複雜的手動設置。 它提供了用於管理身份驗證流的無代碼接口。>
創建Descope Flow
- 註冊Descope帳戶。
- 在儀表板中,創建一個auth Flow。選擇PassKeys(WebAuthn)作為主要方法。
- >可選,添加一個2FA方法。
- > 選擇一個登錄屏幕(可能使用其他註冊方法)。
- > Descope生成您的驗證流,並為您的項目ID提供代碼段。
- 設置React Project
創建一個新的React項目,使用
。- 安裝Descope SDK:
-
npm create vite
>在您的項目ID中配置 - >在
npm install @descope/react-sdk
中使用descope組件和鉤子來實現身份驗證流。> - 這個簡化的示例顯示瞭如何整合Descope的註冊或登錄流程:
> AuthProvider
main.jsx
嘗試應用程序 -
App.js
> 運行
>上訪問應用程序。 註冊用戶,設置PassKeys並進行測試登錄。 您也可以在Descope儀表板中啟用Passkey Autofill。
// Simplified App.js example import { useDescope, useSession } from '@descope/react-sdk'; import { Descope } from '@descope/react-sdk'; const App = () => { const { isAuthenticated, isSessionLoading } = useSession(); const { logout } = useDescope(); return ( <div> {!isAuthenticated && ( <Descope flowId="sign-up-or-in" onSuccess={(e) => console.log(e.detail.user)} onError={(e) => console.log('Error!')} /> )} {isAuthenticated && <button onClick={logout}>Logout</button>} </div> ); };
(完整的代碼可在GitHub上找到。)>
> descope的拖放身份驗證
> Discope簡化了帶有用於管理身份驗證流的拖放接口的Passkey實現。這簡化了設置和修改,使所有技能水平的開發人員都可以使用。 它允許更輕鬆,更快,更容易訪問的登錄。
>>註冊一個免費的下降帳戶以了解更多信息。
>以上是開發人員指南:如何實施Passkeys的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL
