Определение конечных точек контроллера для интеграции ключей доступа

В FrontendController.java определите конечные точки для обработки запросов к страницам входа и профиля. Метод index() должен отображать страницу входа, а метод Profile() проверит сеанс пользователя и отобразит профиль пользователя.

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

Добавить страницу профиля пароля

После успешной аутентификации компонент пользовательского интерфейса Corbado перенаправляет пользователя. На этой странице отображается информация о пользователе и имеется кнопка для выхода из системы. В папке шаблонов добавьте файл Profile.html со следующим содержимым:

                             

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Далее создайте метод Profile() с аннотацией внутри FrontendController.java:

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

Проверка сеанса Корбадо

Прежде чем мы сможем использовать информацию, встроенную в сеанс, нам необходимо убедиться, что сеанс действителен. Поэтому мы берем файл cookie cbo_short_session (сеанс) и проверяем его подпись с помощью службы сеансов из Corbado Java SDK. Это можно сделать с помощью:

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

Получить данные из сеанса Corbado

Он принимает файл cookie cbo_short_session, проверяет его и возвращает UserID и полное имя пользователя.

Окончательный код сопоставления профиля выглядит следующим образом:

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

Запуск вашего приложения

Чтобы запустить приложение Spring Boot, перейдите в каталог /complete и выполните:

./mvnw spring-boot:run

Посетите http://localhost:8080 в своем браузере, чтобы увидеть страницу входа в действии.

\\\"How

Заключение

В этом руководстве показано, как интегрировать ключи доступа в приложение Java Spring Boot с помощью Corbado. Выполнив эти шаги, вы сможете эффективно и безопасно реализовать аутентификацию без пароля. Более подробную документацию по управлению сеансами и интеграции Corbado в существующие приложения можно найти в официальной документации Corbado.

","image":"http://www.luping.net/uploads/20240911/172604988566e16e5d0837f.jpg","datePublished":"2024-11-07T06:44:33+08:00","dateModified":"2024-11-07T06:44:33+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как интегрировать ключи доступа в Java Spring Boot

Как интегрировать ключи доступа в Java Spring Boot

Опубликовано 7 ноября 2024 г.
Просматривать:219

Введение в ключи доступа в Java Spring Boot

Пароли предлагают современный и безопасный способ аутентификации пользователей, не полагаясь на традиционные пароли. В этом руководстве мы познакомим вас с интеграцией ключей доступа в приложение Java Spring Boot с использованием Thymeleaf в качестве механизма шаблонов.

Мы будем использовать компонент пользовательского интерфейса Corbado, основанный на ключе доступа, для подключения к серверной части, что упростит процесс внедрения. В этом руководстве предполагается, что у вас есть базовые знания HTML и Java Spring Boot, а также установлен Corbado Java SDK.

Смотрите полное оригинальное руководство

Предварительные условия для реализации ключей доступа в Java Spring Boot

Прежде чем мы начнем, убедитесь, что ваш проект включает в себя Corbado Java SDK. В этом уроке в качестве примера мы будем использовать версию 0.0.1. Добавьте следующую зависимость в файл pom.xml:


  com.corbado
  corbado-java
  0.0.1

Альтернативно, если вы используете Gradle, добавьте:

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

Настройка учетной записи и проекта Corbado

Для начала зарегистрируйте учетную запись Corbado через панель разработчика. Во время установки вы настроите свой проект, выбрав «Corbado Complete» и выбрав «Веб-приложение» для своей среды. Обязательно укажите URL-адрес приложения и идентификатор проверяющей стороны, обычно это http://localhost:8080 и localhost соответственно. Эти настройки имеют решающее значение для привязки ключей доступа к правильному домену.

Затем сгенерируйте секрет API на панели разработчика Corbado. Это будет необходимо для внутренней связи, включая получение пользовательских данных.

Создание приложения с паролем Java Spring Boot

Клонируйте стартовый репозиторий Spring Boot:

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

В этом проекте переименуйте HelloController.java в FrontendController.java. Этот контроллер будет обслуживать файлы HTML на основе запросов пользователей. В файле application.properties сохраните projectID и apiSecret как переменные среды (оба можно получить на панели разработчика Corbado).

Создание страницы входа с ключами доступа

Создайте файл index.html в каталоге /complete/src/main/resources/templates. Этот файл будет служить страницей входа в систему, в которую будет встроен компонент пользовательского интерфейса Corbado, использующий ключ доступа. Вот базовая структура:



  
  


  

Определение конечных точек контроллера для интеграции ключей доступа

В FrontendController.java определите конечные точки для обработки запросов к страницам входа и профиля. Метод index() должен отображать страницу входа, а метод Profile() проверит сеанс пользователя и отобразит профиль пользователя.

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

Добавить страницу профиля пароля

После успешной аутентификации компонент пользовательского интерфейса Corbado перенаправляет пользователя. На этой странице отображается информация о пользователе и имеется кнопка для выхода из системы. В папке шаблонов добавьте файл Profile.html со следующим содержимым:


  
    
      
    
    

     
    

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

Далее создайте метод Profile() с аннотацией внутри FrontendController.java:

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

Проверка сеанса Корбадо

Прежде чем мы сможем использовать информацию, встроенную в сеанс, нам необходимо убедиться, что сеанс действителен. Поэтому мы берем файл cookie cbo_short_session (сеанс) и проверяем его подпись с помощью службы сеансов из Corbado Java SDK. Это можно сделать с помощью:

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

Получить данные из сеанса Corbado

Он принимает файл cookie cbo_short_session, проверяет его и возвращает UserID и полное имя пользователя.

Окончательный код сопоставления профиля выглядит следующим образом:

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

Запуск вашего приложения

Чтобы запустить приложение Spring Boot, перейдите в каталог /complete и выполните:

./mvnw spring-boot:run

Посетите http://localhost:8080 в своем браузере, чтобы увидеть страницу входа в действии.

How to Integrate Passkeys into Java Spring Boot

Заключение

В этом руководстве показано, как интегрировать ключи доступа в приложение Java Spring Boot с помощью Corbado. Выполнив эти шаги, вы сможете эффективно и безопасно реализовать аутентификацию без пароля. Более подробную документацию по управлению сеансами и интеграции Corbado в существующие приложения можно найти в официальной документации Corbado.

Заявление о выпуске Эта статья переиздана по адресу: https://dev.to/corbado/how-to-integrate-passkeys-into-java-spring-boot-3264?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3