Maison Périphériques technologiques Industrie informatique Guide du développeur: comment implémenter Passkeys

Guide du développeur: comment implémenter Passkeys

Feb 08, 2025 am 09:55 AM

Ce guide montre aux développeurs comment ajouter une authentification basée sur la clé passante pour une meilleure sécurité et une meilleure expérience utilisateur. Il explique à la fois la configuration manuelle du serveur et du client, et comment la descope simplifie cela avec une interface visuelle et des flux pré-construits.

Ce tutoriel est de Kumar Harsh, développeur de logiciels et auteur technique de l'Inde. Voir plus de son travail sur son site Web!

L'utilisation de Passkeys améliore la sécurité des applications et la commodité des utilisateurs. Ce guide détaille l'implémentation de lakeke, de la configuration au déploiement. Suivre ces étapes crée une expérience d'authentification sécurisée et conviviale, réduisant l'accès non autorisé et la confiance des utilisateurs.

Authentification Passkey: les bases

Contrairement aux mots de passe vulnérables, PassKeys utilise la cryptographie à clé publique pour améliorer la sécurité et l'expérience utilisateur. Pensez à un coffre-fort: votre identité est sécurisée, accessible uniquement avec une paire de clés unique. Passkeys fonctionne de la même manière; Chaque utilisateur a une clé privée (stockée en toute sécurité sur son appareil) et une clé publique partagée avec les sites Web.

La connexion implique que le site Web envoie un défi à l'appareil de l'utilisateur. La clé privée crée une signature unique (une empreinte digitale numérique), vérifiant l'identité sans révéler la clé elle-même. Cela maintient les connexions sécurisées même si le site Web est compromis.

Voici une représentation visuelle:

Developer Guide: How to Implement Passkeys Fig: Cérémonie d'authentification passante

Implémentation de Passkeys: l'approche manuelle (et pourquoi vous ne devriez pas)

Bien que Passkeys soit innovant, la mise en œuvre manuelle est complexe et découragée en raison des difficultés de configuration et des risques de sécurité. Il est préférable d'utiliser une bibliothèque prise en charge.

Généralement, la mise en œuvre manuelle implique:

  • Configuration côté serveur: Cela inclut la génération de clés, la vérification de la signature, la gestion de l'attestation et l'intégration de la base de données pour les informations des utilisateurs et les informations d'identification de la clé.
  • Frontend Integration: en utilisant JavaScript et navigator.credentials.create(), le client guide les utilisateurs à travers les interactions authentificatrices (analyses d'empreintes digitales, broches, etc.) et envoie des données au serveur. navigator.credentials.get()
Les bibliothèques comme Simplewebuthn simplifient cela. Il gère la génération de clés, ce qui rend le processus plus facile qu'une approche manuelle.

(Un projet REACT Client et Node.js Express Server Exemple utilisant Simplewebuthn est disponible.)

Configuration côté serveur (en utilisant Simplewebuthn)

Le serveur utilise le package

avec quatre points de terminaison clés: @simple-webauthn/server

  1. /generate-registration-options: configure et génère des options d'enregistrement pour le client, empêchant plusieurs enregistrements du même appareil. Il génère également un défi.
  2. /verify-registration: vérifie l'inscription réussie sur les appareils et enregistre les détails de l'utilisateur (clé publique, identifiant d'identification, informations sur l'appareil) dans la base de données.
  3. /generate-authentication-options: Renvoie les options d'authentification, récupérer l'ID de périphérique enregistré.
  4. /verify-authentication: Vérifie une authentification réussie sur les appareils à l'aide d'un périphérique enregistré.

Cet exemple omet l'intégration de la base de données; Vous devrez ajouter cela pour une utilisation en production.

Configuration côté client (en utilisant Simplewebuthn)

Le client a besoin de deux boutons (pour l'enregistrement et l'authentification). onRegistrationStart demande la configuration de /generate-registration-options, puis utilise startRegistration() depuis @simple-webauthn/browser. Après une inscription réussie, /verify-registration vérifie le résultat. L'authentification suit un modèle similaire en utilisant /generate-authentication-options, startAuthentication() et /verify-authentication.

Cette méthode manuelle est complexe et nécessite une configuration et une maintenance supplémentaires pour l'identification des utilisateurs et le stockage des données. La configuration HTTPS nécessite des étapes supplémentaires.

Le moyen la plus facile: implémenter PassKeys avec Descope

Descope simplifie la mise en œuvre de la clé passante, éliminant la configuration manuelle complexe. Il fournit une interface sans code pour gérer les flux d'authentification.

Création de flux de descope

  1. Inscrivez-vous à un compte Descope.
  2. Dans le tableau de bord, créez un flux d'automne. Sélectionnez PassKeys (WebAuthn) comme méthode principale.
  3. éventuellement, ajoutez une méthode 2FA.
  4. Choisissez un écran de connexion (potentiellement avec des méthodes d'enregistrement supplémentaires).
  5. Descope génère votre flux d'autant et fournit un extrait de code avec votre ID de projet.

Configuration d'un projet React

  1. Créez un nouveau projet React en utilisant npm create vite.
  2. Installez le SDK DESCOPE: npm install @descope/react-sdk.
  3. Configurez le AuthProvider dans main.jsx avec votre ID de projet.
  4. Utilisez des composants et des crochets Descope dans App.js pour implémenter le flux d'authentification.

Cet exemple simplifié montre comment intégrer le flux d'inscription ou de connexion de Descope:

// 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>
  );
};
Copier après la connexion

Essayer l'application

Exécutez npm run dev et accédez à l'application à http://localhost:5173. Enregistrez un utilisateur, configurez PassKeys et testant la connexion. Vous pouvez également activer la mise au point automatique Passkey dans le tableau de bord Descope.

(Le code complet est disponible sur github.)

Authentification de glisser-déposer de Descope

DESCOPE STOURSILINES Implémentation PassKey avec une interface glisser-déposer pour gérer les flux d'authentification. Cela simplifie la configuration et la modification, ce qui le rend accessible aux développeurs de tous les niveaux de compétence. Il permet des connexions plus faciles, plus rapides et plus accessibles.

Inscrivez-vous à un compte Descope gratuit pour en savoir plus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1670
14
Tutoriel PHP
1276
29
Tutoriel C#
1256
24
Pilote CNCF ARM64: impact et perspectives Pilote CNCF ARM64: impact et perspectives Apr 15, 2025 am 08:27 AM

Ce programme pilote, une collaboration entre le CNCF (Cloud Native Computing Foundation), Ampere Computing, Equinix Metal et ACTUTIE, rationalise ARM64 CI / CD pour les projets GitHub CNCF. L'initiative répond aux problèmes de sécurité et aux performances LIM

Pipeline de traitement d'image sans serveur avec AWS ECS et Lambda Pipeline de traitement d'image sans serveur avec AWS ECS et Lambda Apr 18, 2025 am 08:28 AM

Ce tutoriel vous guide dans la création d'un pipeline de traitement d'image sans serveur à l'aide de services AWS. Nous allons créer un frontend Next.js déployé sur un cluster ECS Fargate, en interagissant avec une passerelle API, des fonctions lambda, des seaux S3 et DynamoDB. Ème

Top 21 newsletters du développeur auquel s'abonner en 2025 Top 21 newsletters du développeur auquel s'abonner en 2025 Apr 24, 2025 am 08:28 AM

Restez informé des dernières tendances technologiques avec ces meilleurs bulletins de développeur! Cette liste organisée offre quelque chose pour tout le monde, des amateurs d'IA aux développeurs assaisonnés du backend et du frontend. Choisissez vos favoris et gagnez du temps à la recherche de rel

CNCF déclenche une percée de parité de plate-forme pour ARM64 et X86 CNCF déclenche une percée de parité de plate-forme pour ARM64 et X86 May 11, 2025 am 08:27 AM

Puzzles CI / CD et solutions pour les logiciels open source dans l'architecture ARM64 Le déploiement de logiciels open source sur l'architecture ARM64 nécessite un environnement CI / CD puissant. Cependant, il existe une différence entre les niveaux de soutien des architectures de processeur ARM64 et traditionnelles x86, qui sont souvent désavantagées. Les développeurs de composants d'infrastructure pour plusieurs architectures ont certaines attentes pour leur environnement de travail: Cohérence: les outils et méthodes utilisés sur les plateformes sont cohérents, évitant la nécessité de modifier le processus de développement en raison de l'adoption de plateformes moins populaires. Performances: La plate-forme et le mécanisme de support ont de bonnes performances pour garantir que les scénarios de déploiement ne sont pas affectés par une vitesse insuffisante lors de la prise en charge de plusieurs plates-formes. Couverture de test: efficacité, conformité et

Avantages du logiciel de télécommunication personnalisé Avantages du logiciel de télécommunication personnalisé May 11, 2025 am 08:28 AM

Le développement de logiciels de télécommunications personnalisés est sans aucun doute un investissement considérable. Cependant, à long terme, vous pouvez réaliser qu'un tel projet peut être plus rentable car il peut augmenter votre productivité comme toute solution prête à l'emploi sur le marché. Comprendre les avantages les plus importants de la construction d'un système de télécommunications personnalisé. Obtenez les fonctionnalités exactes dont vous avez besoin Il y a deux problèmes potentiels avec le logiciel de télécommunications standard que vous pouvez acheter. Certaines manquent de fonctionnalités utiles qui peuvent améliorer considérablement votre productivité. Parfois, vous pouvez les améliorer avec une certaine intégration externe, mais cela ne suffit pas toujours pour les rendre excellents. D'autres logiciels ont trop de fonctions et sont trop compliqués à utiliser. Vous n'en utilisez probablement pas (jamais!). Un grand nombre de fonctionnalités ajoute généralement au prix. En fonction de vos besoins

See all articles