Définition des points de terminaison du contrôleur pour l'intégration des clés d'accès

Dans FrontendController.java, définissez les points de terminaison pour gérer les demandes adressées aux pages de connexion et de profil. La méthode index() doit restituer la page de connexion, tandis que la méthode profile() validera la session utilisateur et affichera le profil utilisateur.

@Controllerpublic class FrontendController {  @Value(\\\"${projectID}\\\")  private String projectID;  @Value(\\\"${apiSecret}\\\")  private String apiSecret;  private final CorbadoSdk sdk;  @Autowired  public FrontendController(      @Value(\\\"${projectID}\\\") final String projectID, @Value(\\\"${apiSecret}\\\") final String apiSecret)      throws StandardException {    final Config config = new Config(projectID, apiSecret);    this.sdk = new CorbadoSdk(config);  }  @RequestMapping(\\\"/\\\")  public String index(final Model model) {    model.addAttribute(\\\"PROJECT_ID\\\", projectID);    return \\\"index\\\";  }  ...

Ajouter une page de profil de clé d'accès

Après une authentification réussie, le composant Corbado UI redirige l'utilisateur. Cette page affiche des informations sur l'utilisateur et fournit un bouton pour se déconnecter. Dans le dossier des modèles, ajoutez un fichier profile.html avec le contenu suivant :

                             

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Ensuite, créez une méthode profile() avec une annotation dans FrontendController.java :

@RequestMapping(\\\"/profile\\\")public String profile() {  return \\\"profile\\\";}

Vérifier la session Corbado

Avant de pouvoir utiliser les informations intégrées dans la session, nous devons vérifier que la session est valide. Nous prenons donc le cookie cbo_short_session (la session) et vérifions sa signature à l'aide du service de session du SDK Java Corbado. Cela peut être fait avec :

final SessionValidationResult validationResp =          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);

Obtenir des données de la session Corbado

Il prend le cookie cbo_short_session, le valide et renvoie l'ID utilisateur et le nom complet de l'utilisateur.

Le code final du mappage de profil se présente comme suit :

  @RequestMapping(\\\"/profile\\\")  public String profile(      final Model model, @CookieValue(\\\"cbo_short_session\\\") final String cboShortSession) {    try {      // Validate user from token      final SessionValidationResult validationResp =          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);      // get list of emails from identifier service      List emails;      emails = sdk.getIdentifiers().listAllEmailsByUserId(validationResp.getUserID());      //      model.addAttribute(\\\"PROJECT_ID\\\", projectID);      model.addAttribute(\\\"USER_ID\\\", validationResp.getUserID());      model.addAttribute(\\\"USER_NAME\\\", validationResp.getFullName());      // select email of your liking or list all emails      model.addAttribute(\\\"USER_EMAIL\\\", emails.get(0).getValue());    } catch (final Exception e) {      System.out.println(e.getMessage());      model.addAttribute(\\\"ERROR\\\", e.getMessage());      return \\\"error\\\";    }    return \\\"profile\\\";  }

Lancement de votre application

Pour démarrer votre application Spring Boot, accédez au répertoire /complete et exécutez :

./mvnw spring-boot:run

Visitez http://localhost:8080 dans votre navigateur pour voir la page de connexion en action.

\\\"How

Conclusion

Ce guide a montré comment intégrer des clés d'accès dans une application Java Spring Boot à l'aide de Corbado. En suivant ces étapes, vous pouvez mettre en œuvre une authentification sans mot de passe de manière efficace et sécurisée. Pour une documentation plus détaillée sur la gestion de session et l'intégration de Corbado dans les applications existantes, reportez-vous à la documentation officielle de Corbado.

","image":"http://www.luping.net/uploads/20240911/172604988566e16e5d0837f.jpg","datePublished":"2024-09-11T18:18:05+08:00","dateModified":"2024-09-11T18:18:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment intégrer les clés d'accès dans Java Spring Boot

Comment intégrer les clés d'accès dans Java Spring Boot

Publié le 2024-09-11
Parcourir:139

Introduction aux clés d'accès dans Java Spring Boot

Les clés d'accès offrent un moyen moderne et sécurisé d'authentifier les utilisateurs sans recourir aux mots de passe traditionnels. Dans ce guide, nous vous expliquerons l'intégration des clés d'accès dans une application Java Spring Boot en utilisant Thymeleaf comme moteur de modèle.

Nous utiliserons le composant d'interface utilisateur de Corbado avec clé d'accès pour nous connecter à un backend, simplifiant ainsi le processus de mise en œuvre. Ce didacticiel suppose que vous possédez une compréhension de base de HTML et de Java Spring Boot et que vous avez installé le SDK Java Corbado.

Voir le tutoriel original complet

Conditions préalables à l'implémentation de clés d'accès dans Java Spring Boot

Avant de commencer, assurez-vous que la configuration de votre projet inclut le SDK Java Corbado. Pour ce tutoriel, nous utiliserons la version 0.0.1 comme exemple. Ajoutez la dépendance suivante à votre fichier pom.xml :

com.corbadocorbado-java0.0.1

Si vous utilisez Gradle, ajoutez :

implementation "com.corbado:corbado-java:0.0.1"

Configuration de votre compte et de votre projet Corbado

Pour commencer, créez un compte Corbado via le panneau des développeurs. Lors de l'installation, vous configurerez votre projet en sélectionnant « Corbado Complete » et en choisissant « Application Web » pour votre environnement. Assurez-vous de fournir l'URL de l'application et l'ID de la partie de confiance, généralement définis respectivement sur http://localhost:8080 et localhost. Ces paramètres sont cruciaux pour lier les clés d'accès au domaine correct.

Ensuite, générez un secret API à partir du panneau de développement Corbado. Cela sera nécessaire pour les communications back-end, y compris la récupération des données utilisateur.

Création de votre application de clé d'accès Java Spring Boot

Clonez le référentiel de démarrage Spring Boot :

git clone https://github.com/spring-guides/gs-spring-boot.git

Dans ce projet, renommez HelloController.java en FrontendController.java. Ce contrôleur servira les fichiers HTML en fonction des demandes des utilisateurs. Dans votre fichier application.properties, stockez le projectID et apiSecret en tant que variables d'environnement (les deux peuvent être obtenus à partir du panneau de développement Corbado).

Création de la page de connexion des clés d'accès

Créez un fichier index.html dans le répertoire /complete/src/main/resources/templates. Ce fichier servira de page de connexion, intégrant le composant d'interface utilisateur Corbado avec clé d'accès d'abord. Voici la structure de base :



  

Définition des points de terminaison du contrôleur pour l'intégration des clés d'accès

Dans FrontendController.java, définissez les points de terminaison pour gérer les demandes adressées aux pages de connexion et de profil. La méthode index() doit restituer la page de connexion, tandis que la méthode profile() validera la session utilisateur et affichera le profil utilisateur.

@Controller
public class FrontendController {

  @Value("${projectID}")
  private String projectID;

  @Value("${apiSecret}")
  private String apiSecret;

  private final CorbadoSdk sdk;

  @Autowired
  public FrontendController(
      @Value("${projectID}") final String projectID, @Value("${apiSecret}") final String apiSecret)
      throws StandardException {
    final Config config = new Config(projectID, apiSecret);
    this.sdk = new CorbadoSdk(config);
  }

  @RequestMapping("/")
  public String index(final Model model) {
    model.addAttribute("PROJECT_ID", projectID);
    return "index";
  }
  ...

Ajouter une page de profil de clé d'accès

Après une authentification réussie, le composant Corbado UI redirige l'utilisateur. Cette page affiche des informations sur l'utilisateur et fournit un bouton pour se déconnecter. Dans le dossier des modèles, ajoutez un fichier profile.html avec le contenu suivant :


  
    

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Ensuite, créez une méthode profile() avec une annotation dans FrontendController.java :

@RequestMapping("/profile")
public String profile() {
  return "profile";
}

Vérifier la session Corbado

Avant de pouvoir utiliser les informations intégrées dans la session, nous devons vérifier que la session est valide. Nous prenons donc le cookie cbo_short_session (la session) et vérifions sa signature à l'aide du service de session du SDK Java Corbado. Cela peut être fait avec :

final SessionValidationResult validationResp =
          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);

Obtenir des données de la session Corbado

Il prend le cookie cbo_short_session, le valide et renvoie l'ID utilisateur et le nom complet de l'utilisateur.

Le code final du mappage de profil se présente comme suit :

  @RequestMapping("/profile")
  public String profile(
      final Model model, @CookieValue("cbo_short_session") final String cboShortSession) {
    try {
      // Validate user from token
      final SessionValidationResult validationResp =
          sdk.getSessions().getAndValidateCurrentUser(cboShortSession);
      // get list of emails from identifier service
      List emails;

      emails = sdk.getIdentifiers().listAllEmailsByUserId(validationResp.getUserID());

      //
      model.addAttribute("PROJECT_ID", projectID);
      model.addAttribute("USER_ID", validationResp.getUserID());
      model.addAttribute("USER_NAME", validationResp.getFullName());
      // select email of your liking or list all emails
      model.addAttribute("USER_EMAIL", emails.get(0).getValue());

    } catch (final Exception e) {
      System.out.println(e.getMessage());
      model.addAttribute("ERROR", e.getMessage());
      return "error";
    }
    return "profile";
  }

Lancement de votre application

Pour démarrer votre application Spring Boot, accédez au répertoire /complete et exécutez :

./mvnw spring-boot:run

Visitez http://localhost:8080 dans votre navigateur pour voir la page de connexion en action.

How to Integrate Passkeys into Java Spring Boot

Conclusion

Ce guide a montré comment intégrer des clés d'accès dans une application Java Spring Boot à l'aide de Corbado. En suivant ces étapes, vous pouvez mettre en œuvre une authentification sans mot de passe de manière efficace et sécurisée. Pour une documentation plus détaillée sur la gestion de session et l'intégration de Corbado dans les applications existantes, reportez-vous à la documentation officielle de Corbado.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/corbado/how-to-integrate-passkeys-into-java-spring-boot-3264?1 En cas d'infraction, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3