>本指南向開發人員展示瞭如何添加基於Passkey的身份驗證以獲得更好的安全性和用戶體驗。 它可以解釋手動服務器和客戶端設置,以及如何通過視覺界面和預構建的流量簡化下降。
>本教程由印度的軟件開發人員和技術作者Kumar Harsh撰寫。在他的網站上查看他的更多作品! 使用PassKeys改善了應用程序安全性和用戶的便利性。本指南詳細詳細介紹了Passkey實施,從設置到部署。 按照這些步驟創造安全且用戶友好的身份驗證體驗,減少未經授權的訪問和構建用戶信任。
passkey身份驗證:基礎知識
>與脆弱的密碼不同,Passkeys使用公開密碼學來增強安全性和用戶體驗。想想一個保險庫:您的身份是可以確保的,只能使用獨特的密鑰對訪問。 Passkey的工作類似;每個用戶都有一個私鑰(安全存儲在其設備上),並且與網站共享一個公共密鑰。
這是一個視覺表示:
圖:Passkey身份驗證儀式
>
通常,手動實現涉及:
服務器端設置:
這包括密鑰生成,簽名驗證,證明處理以及用於用戶信息和Passkey憑據的數據庫集成。>
前端集成: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
創建一個新的React項目,使用
。npm create vite
>在您的項目ID中配置npm install @descope/react-sdk
中使用descope組件和鉤子來實現身份驗證流。 AuthProvider
main.jsx
App.js
>
>上訪問應用程序。 註冊用戶,設置PassKeys並進行測試登錄。 您也可以在Descope儀表板中啟用Passkey Autofill。
<code class="language-javascript">// 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>} </descope> </div> ); };</code>
(完整的代碼可在GitHub上找到。)>
> descope的拖放身份驗證
> Discope簡化了帶有用於管理身份驗證流的拖放接口的Passkey實現。這簡化了設置和修改,使所有技能水平的開發人員都可以使用。 它允許更輕鬆,更快,更容易訪問的登錄。
>>註冊一個免費的下降帳戶以了解更多信息。
>以上是開發人員指南:如何實施Passkeys的詳細內容。更多資訊請關注PHP中文網其他相關文章!