首頁 科技週邊 IT業界 開發人員指南:如何實施Passkeys

開發人員指南:如何實施Passkeys

Feb 08, 2025 am 09:55 AM

>本指南向開發人員展示瞭如何添加基於Passkey的身份驗證以獲得更好的安全性和用戶體驗。 它可以解釋手動服務器和客戶端設置,以及如何通過視覺界面和預構建的流量簡化下降。

>

本教程由印度的軟件開發人員和技術作者Kumar Harsh撰寫。在他的網站上查看他的更多作品! 使用PassKeys改善了應用程序安全性和用戶的便利性。本指南詳細詳細介紹了Passkey實施,從設置到部署。 按照這些步驟創造安全且用戶友好的身份驗證體驗,減少未經授權的訪問和構建用戶信任。

passkey身份驗證:基礎知識

>與脆弱的密碼不同,Passkeys使用公開密碼學來增強安全性和用戶體驗。想想一個保險庫:您的身份是可以確保的,只能使用獨特的密鑰對訪問。 Passkey的工作類似;每個用戶都有一個私鑰(安全存儲在其設備上),並且與網站共享一個公共密鑰。 > 登錄涉及網站向用戶設備發送挑戰。私鑰會創建獨特的簽名(數字指紋),驗證身份而不揭示鑰匙本身。 即使網站遭到損害,這也可以確保登錄安全。

>

這是一個視覺表示:

圖:Passkey身份驗證儀式

> Developer Guide: How to Implement Passkeys

實現PassKeys:手動方法(以及為什麼不應該)
雖然Passkey是創新的,但由於設置困難和安全風險,手動實施是複雜的,並且灰心。 最好使用受支持的庫。

通常,手動實現涉及:

服務器端設置:

這包括密鑰生成,簽名驗證,證明處理以及用於用戶信息和Passkey憑據的數據庫集成。 >>>>>

>

前端集成:
    >使用JavaScript的
  • ,客戶端通過Authenticator Interactions(指紋掃描,引腳等)指導用戶,並將數據發送到服務器。
  • 庫,例如簡單的Webauthn,簡化了這一點。 它處理密鑰生成,使過程比手動方法更容易。
  • > (React Client和Node.js Express Server示例使用SimpleWebauthn可用。) navigator.credentials.create()navigator.credentials.get()>服務器端設置(使用SimpleWebauthn)
>

服務器使用四個關鍵端點的

>軟件包:>
  1. /generate-registration-options:為客戶端配置和生成註冊選項,以防止同一設備中的多個註冊。 它也會產生一個挑戰。
  2. /verify-registration:在數據庫中驗證成功的設備註冊並保存用戶詳細信息(公共密鑰,憑據ID,設備信息)。
  3. /generate-authentication-options:返回身份驗證選項,檢索註冊的設備ID。
  4. /verify-authentication:使用註冊設備驗證成功的設備身份驗證。

這個示例省略數據庫集成;您需要將其添加到生產使用中。

客戶端設置(使用simplewebauthn)

>

客戶需要兩個按鈕(用於註冊和身份驗證)。 onRegistrationStart>從/generate-registration-options>請求配置,然後使用使用startRegistration()>。 成功註冊後,@simple-webauthn/browser驗證結果。 身份驗證遵循類似的模式,使用/verify-registration>,/generate-authentication-optionsstartAuthentication()/verify-authentication

此手動方法很複雜,需要其他設置和維護以進行用戶識別和數據存儲。 HTTPS設置需要額外的步驟。

>

更簡單的方法:用discope 實現Passkey

> Descope簡化了Passkey實現,消除了複雜的手動設置。 它提供了用於管理身份驗證流的無代碼接口。

>

創建Descope Flow

    註冊Descope帳戶。
  1. 在儀表板中,創建一個auth Flow。選擇PassKeys(WebAuthn)作為主要方法。
  2. >可選,添加一個2FA方法。
  3. >
  4. 選擇一個登錄屏幕(可能使用其他註冊方法)。
  5. > Descope生成您的驗證流,並為您的項目ID提供代碼段。
  6. 設置React Project

創建一個新的React項目,使用

    安裝Descope SDK:
  1. npm create vite>在您的項目ID中配置
  2. >在npm install @descope/react-sdk中使用descope組件和鉤子來實現身份驗證流。 >
  3. 這個簡化的示例顯示瞭如何整合Descope的註冊或登錄流程:> AuthProvider main.jsx
  4. 嘗試應用程序
  5. App.js>
  6. 運行
,並在

>上訪問應用程序。 註冊用戶,設置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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
CNCF ARM64飛行員:影響和見解 CNCF ARM64飛行員:影響和見解 Apr 15, 2025 am 08:27 AM

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

使用AWS ECS和LAMBDA的無服務器圖像處理管道 使用AWS ECS和LAMBDA的無服務器圖像處理管道 Apr 18, 2025 am 08:28 AM

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

21個開發人員新聞通訊將在2025年訂閱 21個開發人員新聞通訊將在2025年訂閱 Apr 24, 2025 am 08:28 AM

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

See all articles