نشر في الأصل في 6/11/2014 على مدونة مطور الفولينس بواسطة سارة بيث بيانكي.
التحدي
يتطلب نموذج المصادقة لواجهات برمجة تطبيقات Valence Learning Framework من المستخدم تسجيل الدخول إلى بيئة التعلم عبر جلسة مستعرض. يعد هذا سير عمل سلسا عند إنشاء تطبيق ويب ، مما يسمح بإعادة توجيه المستخدم إلى شاشة تسجيل الدخول إلى LMS ثم العودة إلى تطبيقك في تتابع سريع. ومع ذلك ، إذا كنت تقوم بإنشاء تطبيق أصلي لا يعمل في متصفح ، فقد يبدو سير العمل مفككا وقد تكون عملية استرداد الرموز المميزة للمستخدم بشكل آمن صعبة. يعد الحصول على تطبيقك الأصلي لبدء جلسة متصفح ثم إعادة المستخدم إلى التطبيق بعد المصادقة مشكلة مهمة يجب حلها.
الحل
ال عينة من جانب العميل يمكن التطبيق الأصلي من تشغيل جلسة ويب ، وتأكيد مصادقة المستخدم الناجحة ، وتمرير الرموز المميزة للمستخدم الضرورية إلى التطبيق ، وإغلاق جلسة المتصفح - بما في ذلك إغلاق علامة التبويب في المستعرضات المدعومة. عند إضافتها إلى تطبيقك الأصلي ، يقوم هذا الرمز برعاية المستخدم من خلال تبديل السياق الضروري للمصادقة لتقليل تعطيل تجربة المستخدم.
التفاصيل
عندما يصل التطبيق إلى مكان تكون فيه مصادقة المستخدم مطلوبة - على سبيل المثال، إذا كان التطبيق بحاجة إلى سحب محتوى جديد من مقرر دراسي - يبدأ نموذج جانب العميل. يفتح النموذج جلسة مستعرض لنقل المستخدم إلى شاشة تسجيل الدخول إلى LMS ويقوم أيضا بتشغيل خادم HTTP للاستماع إلى إعادة التوجيه التي تحدث بعد نجاح المصادقة. بمجرد أن يقوم المستخدم بتسجيل الدخول بنجاح، يتلقى خادم HTTP الرموز المميزة للمستخدم ويمررها مرة أخرى إلى التطبيق الخاص بك. يرسل النموذج أيضا مكالمة لإغلاق علامة تبويب المستعرض التي فتحها. بعض المتصفحات - مثل Firefox - لا تسمح بإغلاق نفسها عبر جافا سكريبت. في هذه الحالة، يعرض المتصفح رسالة تخبر المستخدم أنه من الآمن إغلاق علامة تبويب المتصفح. بمجرد أن يكمل المستخدم عملية المصادقة هذه، يعود إلى التطبيق ويمكنه المضي قدما في حالة مصادق عليها.
العينة
العينة المقدمة مكتوبة بلغة C #. لتشغيله في بيئتك، ستحتاج إلى تكوين بعض المتغيرات.
- على الخط 66 من Programs.cs، قم بتحديث المؤشر إلى LMS. في العينة، يتم تعيينه على lms.valence.desire2learn.com وهو نموذج الخادم الذي يستخدمه أداة اختبار API عينة عبر الإنترنت.
- في السطرين 7 و 8 من App.config، قم بتحديث قيم appId وappKey لمطابقة قيم التطبيق الذي تقوم بتسجيله. القيم الموجودة في العينة هي نفسها تلك الموجودة في أداة اختبار واجهة برمجة التطبيقات، وستعمل فقط مقابل نموذج LMS المرتبط بهذه الأداة.
- في السطر 24 من Program.cs، لديك خيار تغيير المنفذ الذي يستخدمه خادم HTTP. نظرا لأن خادم HTTP هذا يعمل على الجهاز المحلي، فلن تحتاج إلى تغيير القيمة ما لم يتم تخصيص هذا المنفذ لعملية أخرى.
دورك
جرب هذا النموذج في تطبيق جانب العميل الخاص بك وشارك ملاحظاتك في المنتديات. إذا اخترت نقل هذه العينة إلى لغة أخرى، ففكر في المساهمة بها مرة أخرى في مجتمع Valence حتى نتمكن من استضافتها في Brightspace GitHub org.