إضافة مصادقة إلى تطبيق Xamarin.iOS الخاص بك
نظرة عامة
يوضح لك هذا الموضوع كيفية مصادقة مستخدمي تطبيق Mobile Service من تطبيق العميل. في هذا البرنامج التعليمي، يمكنك إضافة مصادقة إلى مشروع التشغيل السريع Xamarin.iOS باستخدام موفر هوية مدعوم من قبل خدمة التطبيق. بعد المصادقة والتصريح بنجاح من قبل تطبيق الهاتف المحمول الخاص بك ، يتم عرض قيمة معرف المستخدم وستتمكن من الوصول إلى بيانات الجدول المقيدة.
يجب عليك أولا إكمال البرنامج التعليمي إنشاء تطبيق Xamarin.iOS. إذا لم تستخدم مشروع خادم البدء السريع الذي تم تنزيله، فيجب إضافة حزمة ملحق المصادقة إلى مشروعك. لمزيد من المعلومات حول حزم ملحقات الخادم، راجع العمل مع حزمة SDK لخادم الواجهة الخلفية .NET لتطبيقات Azure للأجهزة المحمولة.
تسجيل تطبيقك للمصادقة وتكوين خدمات التطبيق
أولا، تحتاج إلى تسجيل تطبيقك في موقع موفر الهوية، وبعد ذلك ستقوم بتعيين بيانات الاعتماد التي ينشئها الموفر في الواجهة الخلفية لتطبيقات الجوال.
قم بتكوين موفر الهوية المفضل لديك باتباع الإرشادات الخاصة بالموفر:
كرر الخطوات السابقة لكل موفر تريد دعمه في تطبيقك.
إضافة تطبيقك إلى عناوين URL المسموح بها لإعادة التوجيه الخارجي
تتطلب المصادقة الآمنة تحديد نظام عنوان URL جديد لتطبيقك. يسمح ذلك لنظام المصادقة بإعادة التوجيه مرة أخرى إلى تطبيقك بمجرد اكتمال عملية المصادقة. في هذا البرنامج التعليمي ، نستخدم اسم تطبيق مخطط عنوان URL طوال الوقت. ومع ذلك، يمكنك استخدام أي نظام عناوين URL تختاره. يجب أن تكون فريدة من نوعها لتطبيق الهاتف المحمول الخاص بك. لتمكين إعادة التوجيه على جانب الخادم:
في مدخل Azure، حدد خدمة التطبيقات.
انقر على خيار قائمة المصادقة / التفويض .
في عناوين URL لإعادة التوجيه الخارجي المسموح بها، أدخل
url_scheme_of_your_app://easyauth.callback
. url_scheme_of_your_app في هذه السلسلة هو مخطط عنوان URL لتطبيق الهاتف المحمول الخاص بك. يجب أن يتبع مواصفات عنوان URL العادية للبروتوكول (استخدم الأحرف والأرقام فقط ، وابدأ بحرف). يجب عليك تدوين السلسلة التي تختارها حيث ستحتاج إلى ضبط رمز تطبيق الهاتف المحمول الخاص بك باستخدام مخطط عنوان URL في عدة أماكن.انقر فوق موافق.
اضغط على حفظ .
تقييد الأذونات للمستخدمين المصادق عليهم
بشكل افتراضي، يمكن استدعاء واجهات برمجة التطبيقات في الواجهة الخلفية لتطبيقات الجوال بشكل مجهول. بعد ذلك ، تحتاج إلى تقييد الوصول إلى العملاء المصادق عليهم فقط.
Node.js الخلفية (عبر بوابة Azure):
في إعدادات تطبيقات الجوال، انقر فوق جداول سهلة وحدد الجدول. انقر فوق تغيير الأذونات، وحدد الوصول المصادق عليه لكافة الأذونات فقط، ثم انقر فوق حفظ.
نهاية خلفية .NET (C #):
في مشروع الخادم، انتقل إلى ControllersTodoItemController>.cs. إضافة السمة
[Authorize]
إلى فئة TodoItemController كما يلي. لتقييد الوصول إلى طرق محددة فقط، يمكنك أيضا تطبيق هذه السمة فقط على هذه الطرق بدلا من الفصل. إعادة نشر مشروع الخادم.[Authorize] public class TodoItemController : TableController<TodoItem>
Node.js الخلفية (عبر رمز Node.js):
لطلب المصادقة للوصول إلى الجدول، أضف السطر التالي إلى البرنامج النصي لخادم Node.js:
table.access = 'authenticated';
لمزيد من التفاصيل، راجع كيفية: طلب المصادقة للوصول إلى الجداول. لمعرفة كيفية تنزيل مشروع رمز التشغيل السريع من موقعك، راجع كيفية: تنزيل مشروع شفرة التشغيل السريع للواجهة الخلفية Node.js باستخدام Git.
في Visual Studio أو Xamarin Studio ، قم بتشغيل مشروع العميل على جهاز أو محاكي. تحقق من رفع استثناء غير معالج برمز حالة 401 (غير مصرح به) بعد بدء تشغيل التطبيق. يتم تسجيل الفشل إلى وحدة تحكم مصحح الأخطاء. لذلك في Visual Studio ، يجب أن ترى الفشل في نافذة الإخراج.
يحدث هذا الفشل غير المصرح به لأن التطبيق يحاول الوصول إلى الواجهة الخلفية لتطبيق الجوال الخاص بك كمستخدم غير مصادق عليه. يتطلب جدول TodoItem الآن المصادقة.
بعد ذلك ، ستقوم بتحديث تطبيق العميل لطلب موارد من الواجهة الخلفية لتطبيق الجوال مع مستخدم مصادق عليه.
إضافة مصادقة إلى التطبيق
في هذا القسم ، ستقوم بتعديل التطبيق لعرض شاشة تسجيل الدخول قبل عرض البيانات. عند بدء تشغيل التطبيق، لن يتصل بخدمة التطبيق ولن يعرض أي بيانات. بعد المرة الأولى التي يقوم فيها المستخدم بتنفيذ إيماءة التحديث ، ستظهر شاشة تسجيل الدخول ؛ بعد تسجيل الدخول الناجح ، سيتم عرض قائمة عناصر todo.
في مشروع العميل، افتح الملف QSTodoService.cs وأضف ما يلي باستخدام العبارة ومع
MobileServiceUser
الوصول إلى فئة QSTodoService:using UIKit; // Logged in user private MobileServiceUser user; public MobileServiceUser User { get { return user; } }
إضافة طريقة جديدة تسمى المصادقة إلى QSTodoService مع التعريف التالي:
public async Task Authenticate(UIViewController view) { try { AppDelegate.ResumeWithURL = url => url.Scheme == "{url_scheme_of_your_app}" && client.ResumeWithURL(url); user = await client.LoginAsync(view, MobileServiceAuthenticationProvider.Facebook, "{url_scheme_of_your_app}"); } catch (Exception ex) { Console.Error.WriteLine (@"ERROR - AUTHENTICATION FAILED {0}", ex.Message); } }
ملاحظة
إذا كنت تستخدم موفر هوية آخر غير فيسبوك، فقم بتغيير القيمة التي تم تمريرها إلى LoginAsync أعلاه إلى أحد الإجراءات التالية: حساب Microsoft أو تويتر أو Google أو WindowsAzureActiveDirectory.
افتح QSTodoListViewController.cs. تعديل تعريف أسلوب ViewDidLoad إزالة الاستدعاء إلى RefreshAsync() بالقرب من النهاية:
public override async void ViewDidLoad () { base.ViewDidLoad (); todoService = QSTodoService.DefaultService; await todoService.InitializeStoreAsync(); RefreshControl.ValueChanged += async (sender, e) => { await RefreshAsync(); } // Comment out the call to RefreshAsync // await RefreshAsync(); }
تعديل الأسلوب RefreshAsync للمصادقة إذا كانت الخاصية المستخدم فارغة. قم بإضافة التعليمة البرمجية التالية في أعلى تعريف الأسلوب:
// start of RefreshAsync method if (todoService.User == null) { await QSTodoService.DefaultService.Authenticate(this); if (todoService.User == null) { Console.WriteLine("couldn't login!!"); return; } } // rest of RefreshAsync method
افتح AppDelegate.cs، أضف الطريقة التالية:
public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options) { if (client.ResumeWithURL(app, url, options)) return true; return base.OpenUrl(app, url, options); }
افتح ملف Info.plist ، وانتقل إلى أنواع عناوين URL في القسم خيارات متقدمة . الآن قم بتكوين المعرفومخططات عناوين URL لنوع عنوان URL الخاص بك وانقر على إضافة نوع عنوان URL. يجب أن تكون مخططات عناوين URL هي نفسها {url_scheme_of_your_app}.
في Visual Studio، متصلا بمضيف Mac أو Visual Studio لنظام التشغيل Mac، قم بتشغيل مشروع العميل الذي يستهدف جهازا أو محاكاة. تحقق من أن التطبيق لا يعرض أي بيانات.
قم بتنفيذ إيماءة التحديث عن طريق سحب قائمة العناصر لأسفل ، مما سيؤدي إلى ظهور شاشة تسجيل الدخول. بمجرد إدخال بيانات اعتماد صالحة بنجاح ، سيعرض التطبيق قائمة بعناصر المهام ، ويمكنك إجراء تحديثات على البيانات.