العربية
  • asp-net-core
  • c-sharp
  • tutorial
  • auth
  • authentication
  • oauth
  • oidc
  • identity

بناء مصادقة ASP.NET Core باستخدام Logto

تعلم كيفية بناء تدفق مصادقة المستخدم باستخدام ASP.NET Core عن طريق دمج Logto SDK.

Gao
Gao
Founder

المقدمة

  • Logto هو بديل حديث لـ Auth0 لبناء بنية هوية العملاء بجهد قليل. يدعم طرق تسجيل الدخول المختلفة، بما في ذلك اسم المستخدم، البريد الإلكتروني، رقم الهاتف وتسجيل الدخول الاجتماعي الشعبي مثل Google وGitHub.
  • ASP.NET Core هو إطار عمل مفتوح المصدر، عالي الأداء ومنصة متعددة تبني تطبيقات حديثة متصلة بالإنترنت والسحاب.

في هذا الدليل، سنوضح لك كيفية بناء تدفق مصادقة المستخدم باستخدام ASP.NET Core عن طريق دمج Logto SDK. يستخدم الدليل لغة البرمجة C#.

المتطلبات المسبقة

قبل البدء، تأكد من أن لديك ما يلي:

إنشاء تطبيق Logto

لبدء الاستخدام، قم بإنشاء تطبيق Logto من النوع "تطبيق ويب تقليدي". اتبع هذه الخطوات لإنشاء تطبيق Logto:

  1. سجل الدخول إلى لوحة تحكم Logto.
  2. في شريط التنقل الأيسر، اضغط على التطبيقات.
  3. اضغط على إنشاء تطبيق.
  4. في الصفحة المفتوحة، ابحث عن قسم "تطبيق الويب التقليدي" وحدد بطاقة "ASP.NET Core".
  5. اضغط على ابدأ البناء، وأدخل اسم تطبيقك.
  6. اضغط على إنشاء.

يجب أن ترى الآن دليل تفاعلي يرشدك خلال عملية دمج Logto SDK مع تطبيق ASP.NET Core الخاص بك. يمكن أن يكون المحتوى التالي مرجعًا للاستخدام المستقبلي.

دمج مع Logto SDK

التثبيت

لاحظ أن الحد الأدنى للنسخة المدعومة من ASP.NET Core هو 6.0.

إضافة وسيط مصادقة Logto

افتح Startup.cs (أو Program.cs) وأضف الشيفرة التالية لتسجيل وسيط مصادقة Logto:

سيقوم الأسلوب AddLogtoAuthentication بالأشياء التالية:

  • تعيين نظام المصادقة الافتراضي إلى LogtoDefaults.CookieScheme.
  • تعيين نظام التحدي الافتراضي إلى LogtoDefaults.AuthenticationScheme.
  • تعيين نظام تسجيل الخروج الافتراضي إلى LogtoDefaults.AuthenticationScheme.
  • إضافة وحدات معالجة مصادقة الكوكيز وOpenID Connect إلى نظام المصادقة.

تسجيل الدخول

أضف URI التالي إلى قائمة إعادة التوجيه URIs في صفحة تفاصيل تطبيق Logto:

لتسجيل الدخول باستخدام Logto، يمكنك استخدام الأسلوب ChallengeAsync:

سيعيد توجيه المستخدم إلى صفحة تسجيل الدخول ل Logto.

الميزة RedirectUri تُستخدم لإعادة توجيه المستخدم إلى تطبيق الويب الخاص بك بعد المصادقة. لاحظ أنها تختلف عن URI إعادة التوجيه التي تم تكوينها في صفحة تفاصيل تطبيق Logto:

  1. URI إعادة التوجيه في صفحة تفاصيل تطبيق Logto هي URI التي سيعاد توجيه المستخدم إليها بعد أن يسجل الدخول.
  2. الميزة RedirectUri هي URI التي سيتم التوجيه إليها بعد اتخاذ الإجراءات اللازمة في وسيط مصادقة Logto.

ترتيب الإجراءات هو 1 -> 2. للتوضيح، دعنا نسمي URI إعادة التوجيه في صفحة تفاصيل تطبيق Logto Logto redirect URI وميزة RedirectUri application redirect URI.

Logto redirect URI له قيمة افتراضية /Callback، والتي يمكنك تركها كما هي إذا لم يكن هناك متطلب خاص. إذا كنت تريد تغييرها، يمكنك ضبط قيمة CallbackPath لLogtoOptions:

تذكر تحديث القيمة في صفحة تفاصيل تطبيق Logto تبعًا لذلك.

تسجيل الخروج

أضف URI التالي إلى قائمة Post sign-out redirect URIs في صفحة تفاصيل تطبيق Logto:

لتسجيل الخروج باستخدام Logto، يمكنك استخدام الأسلوب SignOutAsync:

سيقوم الأسلوب SignOutAsync بمسح ملف تعريف الارتباط للمصادقة وإعادة توجيه المستخدم إلى صفحة تسجيل الخروج ل Logto.

الميزة RedirectUri تُستخدم لإعادة توجيه المستخدم إلى تطبيق الويب الخاص بك بعد تسجيل الخروج. لاحظ أنها تختلف عن URI إعادة التوجيه بعد تسجيل الخروج التي تم تكوينها في صفحة تفاصيل تطبيق Logto:

  1. URI إعادة التوجيه بعد تسجيل الخروج في صفحة تفاصيل تطبيق Logto هي URI التي سيعاد توجيه المستخدم إليها بعد أن يسجل خروج.
  2. الميزة RedirectUri هي URI التي سيتم التوجيه إليها بعد اتخاذ الإجراءات اللازمة في وسيط مصادقة Logto.

ترتيب الإجراءات هو 1 -> 2. للتوضيح، دعنا نسمي URI إعادة التوجيه بعد تسجيل الخروج في صفحة تفاصيل تطبيق Logto Logto post sign-out redirect URI وميزة RedirectUri application post sign-out redirect URI.

Logto post sign-out redirect URI له قيمة افتراضية /SignedOutCallback، والتي يمكنك تركها كما هي إذا لم يكن هناك متطلب خاص. إذا كنت تريد تغييرها، يمكنك ضبط قيمة SignedOutCallbackPath لLogtoOptions:

تذكر تحديث القيمة في صفحة تفاصيل تطبيق Logto تبعًا لذلك.

تنفيذ أزرار تسجيل الدخول / تسجيل الخروج (Razor Pages)

أولاً، أضف أساليب المعالجة إلى PageModel الخاص بك، على سبيل المثال:

ثم، أضف الأزرار إلى صفحة Razor الخاصة بك (html):

<p>Is authenticated: @User.Identity?.IsAuthenticated</p>
<form method="post">
  @if (User.Identity?.IsAuthenticated == true)
  {
    <button type="submit" asp-page-handler="SignOut">Sign out</button>
  } else {
    <button type="submit" asp-page-handler="SignIn">Sign in</button>
  }
</form>

سيظهر زر "تسجيل الدخول" إذا لم يتم المصادقة على المستخدم، وسيظهر زر "تسجيل الخروج" إذا تم المصادقة على المستخدم.

نقطة تحقق: تشغيل تطبيق الويب

الآن يمكنك تشغيل تطبيق الويب وتجربة تسجيل الدخول/تسجيل الخروج باستخدام Logto:

  1. افتح تطبيق الويب في متصفحك، يجب أن ترى "Is authenticated: False" وزر "تسجيل الدخول".
  2. اضغط على زر "تسجيل الدخول"، ويجب أن يتم إعادة توجيهك إلى صفحة تسجيل الدخول ل Logto.
  3. بعد أن سجلت الدخول، يجب أن يتم إعادة توجيهك إلى تطبيق الويب، ويجب أن ترى "Is authenticated: True" وزر "تسجيل الخروج".
  4. اضغط على زر "تسجيل الخروج"، ويجب أن يتم إعادة توجيهك إلى صفحة تسجيل الخروج ل Logto، ثم العودة إلى تطبيق الويب.

إذا واجهت أي مشاكل أثناء التكامل، لا تتردد في الاتصال بنا عبر البريد الإلكتروني [email protected] أو الانضمام إلى خادم ديسكورد الخاص بنا!

قراءات إضافية