ما هي أفضل طريقة لتوسيع Restful_authentication/AuthLogic لدعم عمليات تسجيل الدخول البطيئة بواسطة جهاز iPhone مجهول؟

StackOverflow https://stackoverflow.com/questions/351627

سؤال

أقوم بإنشاء تطبيق iPhone يتحدث إلى الواجهة الخلفية لـ Ruby on Rails.سيخدم تطبيق Ruby on Rails أيضًا مستخدمي الويب.يعد المكون الإضافي Restful_authentication طريقة ممتازة لتوفير مصادقة مستخدم سريعة وقابلة للتخصيص.ومع ذلك، أود أن يكون لدى مستخدمي تطبيق iPhone حساب يتم إنشاؤه تلقائيًا بواسطة المعرف الفريد للهاتف ([[UIDevice Device] UniqueIdentifier]) المخزن في عمود جديد.لاحقًا، عندما يكون المستخدمون جاهزين لإنشاء اسم مستخدم/كلمة مرور، سيتم تحديث الحساب ليحتوي على اسم المستخدم وكلمة المرور، مع ترك معرف iPhone الفريد سليمًا.يجب ألا يتمكن المستخدمون من الوصول إلى موقع الويب حتى يقوموا بإعداد اسم المستخدم/كلمة المرور الخاصة بهم.ومع ذلك، يمكنهم استخدام تطبيق iPhone، حيث يمكن للتطبيق التحقق من نفسه باستخدام معرفه.

ما هي أفضل طريقة لتعديل Restful_authentication للقيام بذلك؟إنشاء البرنامج المساعد؟أو تعديل الكود الذي تم إنشاؤه؟

ماذا عن الأطر البديلة، مثل AuthLogic.ما هي أفضل طريقة للسماح لأجهزة iPhone بالحصول على رمز مصادقة مميز مقفل على UUID الخاصة بها، ولكن بعد ذلك السماح للمستخدم بإنشاء اسم مستخدم/كلمة مرور لاحقًا؟

هل كانت مفيدة؟

المحلول

وأعتقد أن عليك أن لا تستخدم معرف الهاتف وحدها لمصادقة لأنها ليست سرا وربما يكون تخمينها أيضا / يمكن التنبؤ بها. لا ننسى أنه إذا أراد شخص ما أن الإختراق التطبيق الويب الخاص بك ليس لديهم لاستخدام التعليمات البرمجية - يمكن تخمين فقط معرفات الجهاز ومحاولة لفوضى مع مستخدمي البيانات الخاصة بك باستخدام أي عميل على شبكة الإنترنت

ويجب أن يعامل ID جهاز مماثل لاسم المستخدم - هو للمصادقة تحديد ولا. أقترح عليك الحصول على المستخدم اختيار كلمة مرور، أو حتى أفضل توليد رمز عشوائي تلقائيا، للذهاب معها - قم بإرسال معرف الجهاز + هذه كلمة السر / رمز لتسجيل الجهاز أولا، ثم بعد ذلك لمصادقة الجهاز.

ويمكنك الرهان أيضا أن بعض المستخدمين سيكون أكثر من جهاز واحد - إما أنها سوف يحل محل واحد في نهاية المطاف، أو ستحصل على شخص مثل ستيفن فراي الذي يذهب حولها مع 4 فون. للتعامل مع هذا أود أن أقترح عليك أن تبحث عن طريقة لمثيل restful_authentication مرتين، مرة لمصادقة المستخدمين، والمرة الثانية لمصادقة الأجهزة. أنا لم تستخدم هذا البرنامج المساعد ولكن أتوقع تحتاج فقط إلى استخدام معلمات الجدول مختلفة لتحقيق ذلك. ثم في منطق التطبيق الخاص بك تسمح للمستخدمين لربط أكثر من جهاز واحد مع حساباتهم.

لفعل ذلك بشكل آمن إما القيام بذلك من الجهاز، أو لديك شاشة الجهاز رمز عشوائي التي ثم أدخل إلى تطبيق الويب لإثبات أنهم يملكون الجهاز (هذا يبدو أكثر إيلاما مما هو عليه - هو نفس العملية أن استخدام التفاح في اي تيونز، وآبل، والتطبيق عن بعد - ننظر كيف تفعل ذلك - لذلك لن يكون من المستغرب أن للمستخدمين)

و(أيضا تأكد من أن عند إنشاء أي كلمات السر العشوائية يمكنك استخدام التشفير عشوائي عدد المولدات كأساس - هناك ربما يكون API فون لهذا - على خلاف ذلك كلمات السر الخاصة بك قد يكون التنبؤ به).

نصائح أخرى

هل حاولت استخدام نظام المصادقة أخرى مثل Authlogic ؟ لقد وجدت restful_authentication تدخلي بدلا من ذلك (على الرغم من أنني للغش باستخدام <لأ href = "http://matthall.wordpress.com/2008/09/09/a-bort-fork-rails-base-application/" يختلط = " نوفولو noreferrer "> البورت ).

إنشاء كلمة مرور عشوائية في Rails نص الرابطأنا أستخدم البرنامج المساعد Restful_authentication لأحد مشاريعي.كجزء من سير عمل إنشاء المستخدم، يجب على النظام إنشاء كلمة مرور عشوائية للمستخدم الجديد.

ما رأيك في استخدام UDID وكلمة مرور عشوائية تم إنشاؤها باستخدام وUDID + وشاملا للموقع المحدد الملح؟

وشيء من هذا القبيل:

salt = 'afG553Dvbf3'

udid = '1234567890'
pass = Digest::MD5.hexdigest(udid + salt)

وترسل أن كلمة السر الى اي فون للمرة القادمة فإنه يتصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top