Definición de puntos finales del controlador para la integración de claves de acceso

En FrontendController.java, defina puntos finales para manejar las solicitudes a las páginas de inicio de sesión y perfil. El método index() debería representar la página de inicio de sesión, mientras que el método perfil() validará la sesión del usuario y mostrará el perfil del usuario.

@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\\\";  }  ...

Agregar página de perfil de clave de acceso

Después de una autenticación exitosa, el componente Corbado UI redirige al usuario. Esta página muestra información sobre el usuario y proporciona un botón para cerrar sesión. En la carpeta de plantillas, agregue un archivo perfil.html con el siguiente contenido:

                             

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

A continuación, cree un método perfil() con una anotación dentro de FrontendController.java:

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

Verificar sesión de Corbado

Antes de que podamos utilizar la información incorporada en la sesión, debemos verificar que la sesión sea válida. Por lo tanto, tomamos la cookie cbo_short_session (la sesión) y verificamos su firma utilizando el servicio de sesión del SDK de Java de Corbado. Esto se puede hacer con:

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

Obtener datos de la sesión de Corbado

Toma la cookie cbo_short_session, la valida y devuelve el UserID y nombre completo del usuario.

El código final para el mapeo del perfil tiene el siguiente aspecto:

  @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\\\";  }

Lanzando su aplicación

Para iniciar su aplicación Spring Boot, navegue hasta el directorio /complete y ejecute:

./mvnw spring-boot:run

Visite http://localhost:8080 en su navegador para ver la página de inicio de sesión en acción.

\\\"How

Conclusión

Esta guía demostró cómo integrar claves de acceso en una aplicación Java Spring Boot usando Corbado. Si sigue estos pasos, podrá implementar la autenticación sin contraseña de manera eficiente y segura. Para obtener documentación más detallada sobre la gestión de sesiones y la integración de Corbado en aplicaciones existentes, consulte la documentación oficial 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 trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo integrar claves de acceso en Java Spring Boot

Cómo integrar claves de acceso en Java Spring Boot

Publicado el 2024-09-11
Navegar:697

Introducción a las claves de acceso en Java Spring Boot

Las claves de acceso ofrecen una forma moderna y segura de autenticar usuarios sin depender de contraseñas tradicionales. En esta guía, lo guiaremos a través de integración de claves de acceso en una aplicación Java Spring Boot usando Thymeleaf como motor de plantilla.

Utilizaremos el componente de interfaz de usuario de clave de acceso de Corbado para conectarnos a un backend, simplificando el proceso de implementación. Este tutorial asume que tienes conocimientos básicos de HTML y Java Spring Boot, y que has instalado el SDK de Corbado Java.

Ver el tutorial original completo

Requisitos previos para implementar claves de acceso en Java Spring Boot

Antes de comenzar, asegúrese de que la configuración de su proyecto incluya el SDK de Corbado Java. Para este tutorial, usaremos la versión 0.0.1 como ejemplo. Agregue la siguiente dependencia a su archivo pom.xml:

com.corbadocorbado-java0.0.1

Como alternativa, si estás usando Gradle, agrega:

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

Configurando su cuenta y proyecto de Corbado

Para comenzar, regístrate para obtener una cuenta de Corbado a través del panel de desarrollador. Durante la instalación, configurará su proyecto seleccionando "Corbado Complete" y eligiendo "Aplicación web" para su entorno. Asegúrese de proporcionar la URL de la aplicación y el ID de la parte de confianza, normalmente configurados en http://localhost:8080 y localhost, respectivamente. Estas configuraciones son cruciales para vincular claves de acceso al dominio correcto.

A continuación, genere un secreto de API desde el panel de desarrollador de Corbado. Esto será necesario para las comunicaciones backend, incluida la recuperación de datos del usuario.

Creación de su aplicación Java Spring Boot Passkey

Clonar el repositorio de inicio de Spring Boot:

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

Dentro de este proyecto, cambie el nombre de HelloController.java a FrontendController.java. Este controlador servirá archivos HTML según las solicitudes de los usuarios. En su archivo application.properties, almacene el ID del proyecto y apiSecret como variables de entorno (ambas se pueden obtener desde el panel de desarrollador de Corbado).

Creación de la página de inicio de sesión de claves de acceso

Cree un archivo index.html en el directorio /complete/src/main/resources/templates. Este archivo servirá como página de inicio de sesión, incorporando el componente de interfaz de usuario de primera clave de acceso de Corbado. Aquí está la estructura básica:



  

Definición de puntos finales del controlador para la integración de claves de acceso

En FrontendController.java, defina puntos finales para manejar las solicitudes a las páginas de inicio de sesión y perfil. El método index() debería representar la página de inicio de sesión, mientras que el método perfil() validará la sesión del usuario y mostrará el perfil del usuario.

@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";
  }
  ...

Agregar página de perfil de clave de acceso

Después de una autenticación exitosa, el componente Corbado UI redirige al usuario. Esta página muestra información sobre el usuario y proporciona un botón para cerrar sesión. En la carpeta de plantillas, agregue un archivo perfil.html con el siguiente contenido:


  
    

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

A continuación, cree un método perfil() con una anotación dentro de FrontendController.java:

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

Verificar sesión de Corbado

Antes de que podamos utilizar la información incorporada en la sesión, debemos verificar que la sesión sea válida. Por lo tanto, tomamos la cookie cbo_short_session (la sesión) y verificamos su firma utilizando el servicio de sesión del SDK de Java de Corbado. Esto se puede hacer con:

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

Obtener datos de la sesión de Corbado

Toma la cookie cbo_short_session, la valida y devuelve el UserID y nombre completo del usuario.

El código final para el mapeo del perfil tiene el siguiente aspecto:

  @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";
  }

Lanzando su aplicación

Para iniciar su aplicación Spring Boot, navegue hasta el directorio /complete y ejecute:

./mvnw spring-boot:run

Visite http://localhost:8080 en su navegador para ver la página de inicio de sesión en acción.

How to Integrate Passkeys into Java Spring Boot

Conclusión

Esta guía demostró cómo integrar claves de acceso en una aplicación Java Spring Boot usando Corbado. Si sigue estos pasos, podrá implementar la autenticación sin contraseña de manera eficiente y segura. Para obtener documentación más detallada sobre la gestión de sesiones y la integración de Corbado en aplicaciones existentes, consulte la documentación oficial de Corbado.

Declaración de liberación Este artículo se reproduce en: https://dev.to/corbado/how-to-integrate-passkeys-into-java-spring-boot-3264?1 Si hay alguna infracción, comuníquese con [email protected] para eliminar él
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3