Entwicklerhandbuch: So implementieren Sie Passkeys
Dieser Leitfaden zeigt Entwicklern, wie die PassKey-basierte Authentifizierung für eine bessere Sicherheit und Benutzererfahrung hinzufügt. Es erläutert sowohl den manuellen Server als auch das Client-Setup und wie Descope dies mit einer visuellen Schnittstelle und vorgefertigten Flows vereinfacht.
Dieses Tutorial stammt von Kumar Harsh, einem Softwareentwickler und technischen Autor aus Indien. Sehen Sie mehr von seiner Arbeit auf seiner Website!
Verwenden von PassKeys verbessert die Anwendungssicherheit und die Benutzerkontrolle. Diese Handbuchdetails Die PassKey -Implementierung vom Setup bis zur Bereitstellung. Das Befolgen dieser Schritte schafft ein sicheres und benutzerfreundliches Authentifizierungserlebnis, wodurch der unbefugte Zugriff verringert wird und Benutzervertrauen aufgebaut wird.
PassKey -Authentifizierung: Die Grundlagen
Im Gegensatz zu schutzbedürftigen Passwörtern verwenden Passkeys Kryptographie für öffentliche Key, um sowohl die Sicherheit als auch die Benutzererfahrung zu verbessern. Denken Sie an ein Gewölbe: Ihre Identität ist gesichert und nur mit einem einzigartigen Schlüsselpaar zugänglich. Passkeys funktionieren ähnlich; Jeder Benutzer verfügt über einen privaten Schlüssel (sicher auf seinem Gerät gespeichert) und einen öffentlichen Schlüssel mit Websites.
Login beinhaltet die Website, die eine Herausforderung an das Gerät des Benutzers sendet. Der private Schlüssel erstellt eine einzigartige Signatur (einen digitalen Fingerabdruck), der die Identität überprüft, ohne den Schlüssel selbst zu enthüllen. Dadurch wird sich die Anmeldungen sicher, auch wenn die Website beeinträchtigt ist.
Hier ist eine visuelle Darstellung:
Implementieren von Passkeys: Der manuelle Ansatz (und warum Sie nicht sollten)
Während Passkeys innovativ sind, ist die manuelle Implementierung komplex und aufgrund von Schwierigkeits- und Sicherheitsrisiken eingerichtet. Es ist am besten, eine unterstützte Bibliothek zu verwenden.
Im Allgemeinen beinhaltet die manuelle Implementierung:
- serverseitiges Setup: Dies umfasst die Schlüsselgenerierung, die Überprüfung der Signatur, die Begleiterung und die Datenbankintegration für Benutzerinformationen und PassKey-Anmeldeinformationen.
- Frontend -Integration: Verwenden von JavaScripts
navigator.credentials.create()
undnavigator.credentials.get()
führt der Client Benutzer durch Authentikatoren -Interaktionen (Fingerabdruck -Scans, Pins usw.) und sendet Daten an den Server.
Bibliotheken wie Simplewebauthn vereinfachen dies. Es behandelt die Schlüsselgenerierung und erleichtert den Prozess als ein manueller Ansatz.
(Ein React -Client und Node.js Express Server -Beispielprojekt mit SimpleWebebauthn ist verfügbar.)
serverseitiges Setup (mit SimpleWebAauthn)
Der Server verwendet das @simple-webauthn/server
-Paket mit vier Schlüsselendpunkten:
-
/generate-registration-options
: Konfiguriert und generiert Registrierungsoptionen für den Client, wodurch mehrere Registrierungen aus demselben Gerät verhindert werden. Es erzeugt auch eine Herausforderung. -
/verify-registration
: Überprüft die erfolgreiche Registrierung von On-Geräte und speichert Benutzerdetails (öffentlicher Schlüssel, Anmeldeinformationen, Geräteinformationen) in der Datenbank. -
/generate-authentication-options
: Gibt Authentifizierungsoptionen zurück, wobei die registrierte Geräte -ID abgerufen wird. -
/verify-authentication
: Überprüft die erfolgreiche On-Device-Authentifizierung mit einem registrierten Gerät.
Dieses Beispiel lässt die Datenbankintegration aus; Sie müssen das hinzufügen, um die Produktion zu verwenden.
clientseitiges Setup (mit SimpleWebAauthn)
Der Kunde benötigt zwei Schaltflächen (zur Registrierung und Authentifizierung). onRegistrationStart
fordert die Konfiguration von /generate-registration-options
an und verwendet dann startRegistration()
aus @simple-webauthn/browser
. Nach erfolgreicher Registrierung überprüft /verify-registration
das Ergebnis. Die Authentifizierung folgt einem ähnlichen Muster mit /generate-authentication-options
, startAuthentication()
und /verify-authentication
.
Diese manuelle Methode ist komplex und erfordert zusätzliche Einrichtung und Wartung für die Benutzeridentifikation und die Datenspeicherung. Das HTTPS -Setup erfordert zusätzliche Schritte.
Auf dem einfacheren Weg: Implementieren von Passkeys mit Descope
Descope vereinfacht die PassKey -Implementierung und beseitigt das komplexe manuelle Setup. Es bietet eine No-Code-Schnittstelle zum Verwalten der Authentifizierungsflüsse.
Erstellen von Descope -Flows
- Melden Sie sich für ein Descope -Konto an.
- Erstellen Sie im Dashboard einen Auth -Fluss. Wählen Sie Passkeys (WebAuthn) als primäre Methode.
- Fügen Sie optional eine 2FA -Methode hinzu.
- Wählen Sie einen Anmeldebildschirm (möglicherweise mit zusätzlichen Registrierungsmethoden).
- Descope generiert Ihren Auth -Fluss und bietet ein Code -Snippet mit Ihrer Projekt -ID.
Einrichten eines React -Projekts
- Erstellen Sie ein neues React -Projekt mit
npm create vite
. - Installieren Sie das Descope SDK:
npm install @descope/react-sdk
. - Konfigurieren Sie die
AuthProvider
inmain.jsx
mit Ihrer Projekt -ID. - Verwenden Sie Descope -Komponenten und Haken in
App.js
, um den Authentifizierungsfluss zu implementieren.
Dieses vereinfachte Beispiel zeigt, wie die Anmelde- oder Anmeldefluss von Descope integriert wird:
// 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> ); };
ausprobieren Sie die App
Ausführen npm run dev
und greifen Sie auf die App bei http://localhost:5173
zu. Registrieren Sie einen Benutzer, richten Sie Passkeys ein und testen Sie die Anmeldung. Sie können das Passkey -Autofill auch im Descope -Dashboard aktivieren.
(Der vollständige Code ist auf GitHub verfügbar.)
Descope's Drag & Drop-Authentifizierung
Descope-Stromlinien-PassKey-Implementierung mit einer Drag-and-Drop-Schnittstelle zum Verwalten der Authentifizierungsflüsse. Dies vereinfacht das Setup und Modifikation und macht es Entwicklern aller Fähigkeiten zugänglich. Es ermöglicht einfachere, schnellere und zugängliche Anmeldungen.
Melden Sie sich für ein kostenloses Descope -Konto an, um mehr zu erfahren.
Das obige ist der detaillierte Inhalt vonEntwicklerhandbuch: So implementieren Sie Passkeys. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Dieses Pilotprogramm, eine Zusammenarbeit zwischen CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal und betätigten, rationalisiert ARM64 CI/CD für CNCF -Github -Projekte. Die Initiative befasst sich mit Sicherheitsbedenken und Leistung

Dieses Tutorial führt Sie durch das Erstellen einer serverlosen Bildverarbeitungspipeline mit AWS -Diensten. Wir werden ein Next.JS -Frontend erstellen, der in einem ECS -Fargate -Cluster eingesetzt wird und mit einem API -Gateway, Lambda -Funktionen, S3 -Eimer und DynamoDB interagiert. Th

Bleiben Sie über die neuesten technischen Trends mit diesen Top -Entwickler -Newsletters informiert! Diese kuratierte Liste bietet für jeden etwas, von KI -Enthusiasten bis hin zu erfahrenen Backend- und Frontend -Entwicklern. Wählen Sie Ihre Favoriten und sparen Sie Zeit, um nach REL zu suchen

Die kundenspezifische Entwicklung von Telekommunikationssoftware ist zweifellos eine beträchtliche Investition. Langfristig können Sie jedoch erkennen, dass ein solches Projekt möglicherweise kostengünstiger ist, da es Ihre Produktivität wie jede fertige Lösung auf dem Markt steigern kann. Verstehen Sie die wichtigsten Vorteile des Aufbaus eines maßgeschneiderten Telekommunikationssystems. Holen Sie sich die genauen Funktionen, die Sie benötigen Es gibt zwei potenzielle Probleme mit der von Ihnen gekauften Telekommunikationssoftware. Einige fehlen nützliche Funktionen, die Ihre Produktivität erheblich verbessern können. Manchmal können Sie sie mit einer externen Integration verbessern, aber das ist nicht immer genug, um sie großartig zu machen. Andere Software hat zu viele Funktionen und ist zu kompliziert, um sie zu verwenden. Sie werden wahrscheinlich einige davon nicht verwenden (niemals!). Eine große Anzahl von Funktionen trägt normalerweise zum Preis bei. Basierend auf Ihren Bedürfnissen

CI/CD -Rätsel und -Lösungen für Open -Source -Software in ARM64 Architektur Die Bereitstellung von Open -Source -Software auf der ARM64 -Architektur erfordert eine leistungsstarke CI/CD -Umgebung. Es gibt jedoch einen Unterschied zwischen den Stützniveaus von ARM64 und herkömmlichen X86 -Prozessorarchitekturen, die häufig im Nachteil sind. Infrastrukturkomponentenentwickler für mehrere Architekturen haben bestimmte Erwartungen für ihr Arbeitsumfeld: Konsistenz: Die Tools und Methoden, die über Plattformen hinweg verwendet werden, sind konsistent und vermeiden, dass der Entwicklungsprozess aufgrund der Einführung weniger beliebter Plattformen geändert werden muss. Leistung: Die Plattform- und Support -Mechanismus haben eine gute Leistung, um sicherzustellen, dass die Bereitstellungsszenarien bei der Unterstützung mehrerer Plattformen nicht von unzureichender Geschwindigkeit beeinflusst werden. Testabdeckung: Effizienz, Konformität und
