إنشاء حزمة SDK لإطار عمل يعتمد على Node.js لـ Logto في دقائق
تعلم كيفية إنشاء حزمة SDK مخصصة لـ Logto باستخدام `@logto/node`.
تعلم كيفية إنشاء حزمة SDK مخصصة لـ Logto باستخدام `@logto/node`.
في هذه المقالة السابقة، قمنا بإنشاء حزمة SDK للويب لـ Logto في دقائق. الآن، دعنا نركز على Node.js، منصة شائعة أخرى لمطوري JavaScript.
في هذا الدليل، سنرشدك خلال الخطوات لإنشاء حزمة SDK بسيطة لـ Express لـ Logto باستخدام @logto/node. ستنفذ حزمة SDK هذه تدفق تسجيل الدخول، ويمكنك اتباع نفس الخطوات لإنشاء حزمة SDK لأي منصة أخرى تعتمد على Node.js مثل Koa، Next.js، NestJS، إلخ.
قبل أن نبدأ، دعونا نراجع تدفق تسجيل الدخول في Logto. يتكون تدفق تسجيل الدخول من الخطوات التالية:
@logto/nodeمشابهة لـ @logto/browser، يوفر حزمة @logto/node فئة LogtoClient التي توفر الوظائف الأساسية لـ Logto، بما في ذلك أساليب لتدفق تسجيل الدخول:
signIn(): ينشئ رابط OIDC للمصادقة ويعيد التوجيه إليه.handleSignInCallback(): يتحقق ويحلل رابط إعادة التوجيه ويستخرج رمز المصادقة، ثم يتبادل الرمز للحصول على رموز عن طريق الاتصال بنقطة نهاية الرموز.getContext(): الحصول على سياق الطلب الحالي بناءً على ملف الارتباط في الجلسة، بما في ذلك حالة المصادقة ومعلومات المستخدم.في حزمة SDK، سنوفر معالجي مسار (/sign-in و/sign-in-callback) إلى جانب وسيط withLogto:
/sign-in: معالج مسار يطلق تدفق التسجيل في الدخول مع استجابة يعيد التوجيه إلى رابط مصادقة OIDC./sign-in-callback: معالج مسار يعالج رابط إعادة التوجيه، يتبادل رمز المصادقة للحصول على رموز ويخزنها ويكمل تدفق التسجيل في الدخول.withLogto: وسيط يستدعي getContext() للحصول على سياق الطلب الحالي، بما في ذلك حالة المصادقة ومعلومات المستخدم.لاستخدام حزمة SDK، يمكنك ببساطة إضافة الوسيط إلى تطبيق Express الخاص بك لحماية المسارات واستخدام معالجات المسار لبدء تدفق التسجيل في الدخول ومعالجة إعادة التوجيه.
أولاً، ثبّت حزمة @logto/node باستخدام npm أو غيرها من مديرات الحزم:
يتطلب مهايئ التخزين لتفعيل مثيل LogtoClient.
بالافتراض أن مستخدم حزمة SDK قد قام بالفعل بإعداد جلسة express، يمكننا ببساطة تنفيذ فئة Storage عن طريق إنشاء ملف جديد storage.ts:
الطلب HTTP خالٍ من الحالة، لذا نحتاج إلى تفعيل مثيل العميل لكل طلب. دعنا نقوم بتحضير مُساعد دالة لإنشاء مثيل العميل:
في هذه الدالة، نقوم بتنفيذ مهايئ navigate مع مهايئ ExpressStorage. يُستخدم مهايئ navigate لإعادة توجيه المستخدم إلى رابط تسجيل الدخول.
الآن، دعنا نقوم بتنفيذ معالجات المسار، مغلفة في دالة handleAuthRoutes:
/auth/sign-in يطلق تدفق التسجيل في الدخول عن طريق استدعاء signIn()، يتم تخزين حالة التسجيل في الجلسة وسيتم استهلاكها بواسطة معالج المسار /auth/sign-in-callback./auth/sign-in-callback يعالج رابط إعادة التوجيه ويتبادل رمز المصادقة للحصول على رموز عن طريق استدعاء handleSignInCallback(). يتم تخزين الرموز في الجلسة بواسطة مهايئ ExpressStorage. بعد الانتهاء من التبادل، يتم إعادة توجيه المستخدم إلى الصفحة الرئيسية.يُستخدم وسيط withLogto لحماية المسارات. يقوم باستدعاء getContext() للحصول على سياق الطلب الحالي، بما في ذلك حالة المصادقة ومعلومات المستخدم.
تستخدم دالة getContext مهايئ التخزين للحصول على الرموز من الجلسة.
الآن بعد أن قمت بإنشاء حزمة SDK لـ Express لـ Logto، يمكنك استخدامها في تطبيقك عن طريق إضافة الوسيط لحماية المسارات واستخدام معالجات المسار لبدء تدفق التسجيل في الدخول ومعالجة إعادة التوجيه.
إليك مثال بسيط عن كيفية استخدام حزمة SDK في تطبيق Express الخاص بك:
في هذا المثال، نستخدم وسيط withLogto للتحقق من حالة المصادقة، وإعادة توجيه المستخدم إلى صفحة تسجيل الدخول إذا لم يكن مصادقًا، وإلاّ، نقوم بعرض رسالة ترحيب.
يمكنك التحقق من مشروع Express التجريبي الرسمي هنا.
في هذا الدليل، قمنا بإرشادك خلال الخطوات لإنشاء حزمة SDK لـ Express لـ Logto تنفذ تدفق المصادقة الأساسي. حزمة SDK المقدمة هنا هي مثال أساسي. يمكنك توسيعها عن طريق إضافة المزيد من الأساليب والوظائف لتلبية احتياجات تطبيقك.
يمكنك اتباع نفس الخطوات لإنشاء حزمة SDK لأي منصة تعتمد على JavaScript تشتغل في Node.js.
الموارد: