بناء مصادقة ASP.NET Core باستخدام Logto
تعلم كيفية بناء تدفق مصادقة المستخدم باستخدام ASP.NET Core عن طريق دمج Logto SDK.
المقدمة
- Logto هو بديل حديث لـ Auth0 لبناء بنية هوية العملاء بجهد قليل. يدعم طرق تسجيل الدخول المختلفة، بما في ذلك اسم المستخدم، البريد الإلكتروني، رقم الهاتف وتسجيل الدخول الاجتماعي الشعبي مثل Google وGitHub.
- ASP.NET Core هو إطار عمل مفتوح المصدر، عالي الأداء ومنصة متعددة تبني تطبيقات حديثة متصلة بالإنترنت والسحاب.
في هذا الدليل، سنوضح لك كيفية بناء تدفق مصادقة المستخدم باستخدام ASP.NET Core عن طريق دمج Logto SDK. يستخدم الدليل لغة البرمجة C#.
المتطلبات المسبقة
قبل البدء، تأكد من أن لديك ما يلي:
- حساب Logto. إذا لم يكن لديك واحد، يمكنك التسجيل مجانًا.
- بيئة تطوير .NET ومشروع ASP.NET Core. إذا لم يكن لديك واحد، يمكنك تثبيت .NET واتباع دروس ASP.NET لإعداد مشروعك.
إنشاء تطبيق Logto
لبدء الاستخدام، قم بإنشاء تطبيق Logto من النوع "تطبيق ويب تقليدي". اتبع هذه الخطوات لإنشاء تطبيق Logto:
- سجل الدخول إلى لوحة تحكم Logto.
- في شريط التنقل الأيسر، اضغط على التطبيقات.
- اضغط على إنشاء تطبيق.
- في الصفحة المفتوحة، ابحث عن قسم "تطبيق الويب التقليدي" وحدد بطاقة "ASP.NET Core".
- اضغط على ابدأ البناء، وأدخل اسم تطبيقك.
- اضغط على إنشاء.
يجب أن ترى الآن دليل تفاعلي يرشدك خلال عملية دمج 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:
- URI إعادة التوجيه في صفحة تفاصيل تطبيق Logto هي URI التي سيعاد توجيه المستخدم إليها بعد أن يسجل الدخول.
- الميزة
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:
- URI إعادة التوجيه بعد تسجيل الخروج في صفحة تفاصيل تطبيق Logto هي URI التي سيعاد توجيه المستخدم إليها بعد أن يسجل خروج.
- الميزة
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:
- افتح تطبيق الويب في متصفحك، يجب أن ترى "Is authenticated: False" وزر "تسجيل الدخول".
- اضغط على زر "تسجيل الدخول"، ويجب أن يتم إعادة توجيهك إلى صفحة تسجيل الدخول ل Logto.
- بعد أن سجلت ا لدخول، يجب أن يتم إعادة توجيهك إلى تطبيق الويب، ويجب أن ترى "Is authenticated: True" وزر "تسجيل الخروج".
- اضغط على زر "تسجيل الخروج"، ويجب أن يتم إعادة توجيهك إلى صفحة تسجيل الخروج ل Logto، ثم العودة إلى تطبيق الويب.
إذا واجهت أي مشاكل أثناء التكامل، لا تتردد في الاتصال بنا عبر البريد الإلكتروني [email protected] أو الانضمام إلى خادم ديسكورد الخاص بنا!