تحديد نقاط نهاية وحدة التحكم لتكامل مفاتيح المرور

في FrontendController.java، حدد نقاط النهاية للتعامل مع الطلبات الواردة إلى صفحات تسجيل الدخول والملف الشخصي. يجب أن تعرض طريقة الفهرس () صفحة تسجيل الدخول، بينما ستقوم طريقة الملف الشخصي () بالتحقق من صحة جلسة المستخدم وعرض ملف تعريف المستخدم.

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

إضافة صفحة ملف تعريف Passkey

بعد المصادقة الناجحة، يقوم مكون Corbado UI بإعادة توجيه المستخدم. تعرض هذه الصفحة معلومات حول المستخدم وتوفر زرًا لتسجيل الخروج. في مجلد القوالب، قم بإضافة ملف Profile.html بالمحتوى التالي:

                             

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

بعد ذلك، قم بإنشاء طريقة ملف تعريف () مع تعليق توضيحي داخل FrontendController.java:

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

التحقق من جلسة كوربادو

قبل أن نتمكن من استخدام المعلومات المضمنة في الجلسة، نحتاج إلى التحقق من صلاحية الجلسة. ولذلك، فإننا نأخذ ملف تعريف الارتباط cbo_short_session (الجلسة) ونتحقق من توقيعه باستخدام خدمة الجلسة من Corbado Java SDK. يمكن القيام بذلك من خلال:

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

الحصول على البيانات من جلسة كوربادو

يأخذ ملف تعريف الارتباط cbo_short_session، ويتحقق من صحته ويعيد معرف المستخدم والاسم الكامل للمستخدم.

يبدو الرمز النهائي لتعيين الملف الشخصي كما يلي:

  @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-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"}}
"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية دمج مفاتيح المرور في Java Spring Boot

كيفية دمج مفاتيح المرور في Java Spring Boot

تم النشر بتاريخ 2024-09-11
تصفح:857

مقدمة إلى مفاتيح المرور في 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.corbadocorbado-java0.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 Passkey الخاص بك

استنساخ مستودع بداية Spring Boot:

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

ضمن هذا المشروع، قم بإعادة تسمية HelloController.java إلى FrontendController.java. ستخدم وحدة التحكم هذه ملفات HTML بناءً على طلبات المستخدم. في ملف application.properties الخاص بك، قم بتخزين معرف المشروع وapiSecret كمتغيرات بيئة (يمكن الحصول على كليهما من لوحة مطوري Corbado).

إنشاء صفحة تسجيل الدخول الخاصة بمفاتيح المرور

قم بإنشاء ملف Index.html في الدليل /Complete/src/main/resources/templates. سيكون هذا الملف بمثابة صفحة تسجيل الدخول، مع تضمين مكون واجهة المستخدم لمفتاح المرور الأول لـ Corbado. إليك البنية الأساسية:



  

تحديد نقاط نهاية وحدة التحكم لتكامل مفاتيح المرور

في FrontendController.java، حدد نقاط النهاية للتعامل مع الطلبات الواردة إلى صفحات تسجيل الدخول والملف الشخصي. يجب أن تعرض طريقة الفهرس () صفحة تسجيل الدخول، بينما ستقوم طريقة الملف الشخصي () بالتحقق من صحة جلسة المستخدم وعرض ملف تعريف المستخدم.

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

إضافة صفحة ملف تعريف Passkey

بعد المصادقة الناجحة، يقوم مكون Corbado UI بإعادة توجيه المستخدم. تعرض هذه الصفحة معلومات حول المستخدم وتوفر زرًا لتسجيل الخروج. في مجلد القوالب، قم بإضافة ملف Profile.html بالمحتوى التالي:


  
    

:/protected

User ID: [[${USER_ID}]]

Name: [[${USER_NAME}]]

Email: [[${USER_EMAIL}]]

بعد ذلك، قم بإنشاء طريقة ملف تعريف () مع تعليق توضيحي داخل FrontendController.java:

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

التحقق من جلسة كوربادو

قبل أن نتمكن من استخدام المعلومات المضمنة في الجلسة، نحتاج إلى التحقق من صلاحية الجلسة. ولذلك، فإننا نأخذ ملف تعريف الارتباط cbo_short_session (الجلسة) ونتحقق من توقيعه باستخدام خدمة الجلسة من Corbado Java SDK. يمكن القيام بذلك من خلال:

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

الحصول على البيانات من جلسة كوربادو

يأخذ ملف تعريف الارتباط cbo_short_session، ويتحقق من صحته ويعيد معرف المستخدم والاسم الكامل للمستخدم.

يبدو الرمز النهائي لتعيين الملف الشخصي كما يلي:

  @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