سؤال

هل تم اختبار شخص ما - هل سيعمل Authlogic مع Oauth -Plugin (https://github.com/pelle/oauth-plugin) أم لا؟

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

المحلول

الجواب المختصر هو رقم. أنا دمج حاليا Oauth-pluginخدمة خدمة مع نظام المصادقة الخاص بي (الذي يسبق Authlogic, ACTS_AS_Authenticated وكل الباقي).

Oauth-plugin تعمل Providership Service عن طريق مولد رمز يولد وحدة تحكم ، والتي يتم ربطها بعد ذلك في بعض ملفات المكتبة في البرنامج المساعد. كل هذه الملفات تتوقع أ login_required طريقة الطبقة مع نفس الدلالات التي ACTS_AS_Authenticated الاستخدامات.

Authlogic لا تقدم أي افتراضات حول وحدات التحكم الخاصة بك على الإطلاق ، لذلك لن تنجح خارج الصندوق Oauth-plugin, ، ومع ذلك ، فإن قرار التصميم هذا يعني أيضًا أنه سيكون من السهل إلى حد ما هيكلة وحدات التحكم الخاصة بك بالطريقة المتوقعة. لذلك يجب أن يكون من السهل (ربما تافهة) بناء شيم لدعمه Oauth-plugin.

ومع ذلك ، في حالتي ، قررت تشغيل المولد ثم استخراج ما أحتاجه من البرنامج المساعد وحذف المكون الإضافي نفسه. السبب الرئيسي الذي يجعلني أفعل ذلك هو أنني لا أملك صراحة login_required الطريقة في نظام المصادقة الخاص بي ، لذلك سأضطر إلى قرد تصحيح lib للحصول عليه للعمل. ثانياً ، هناك الكثير من الأشياء في البرنامج المساعد الذي لا أحتاجه. ثالثًا ، تم بالفعل استخلاص معظم الأشياء التي هي على مستوى المكتبة حقًا OAUTH جوهرة مناسبة ، وبالتالي فإن الأشياء التي تعيش في Oauth-plugin دليل LIB في هذا الأراضي الغريبة لا يوجد رجل بين الكود الذي تم إنشاؤه والمكتبة الفعلية.

نصائح أخرى

أنا بصدد جعل هذا العمل يعمل الآن. لقد تدحرجت للتو باستخدام أساليب Authlogic لجعلها تلعب بشكل جيد. (أحاول أن أجعل مزودًا يعمل ، لذا فإن Authlogic-Oauth لا يبدو مناسبًا بالنسبة لي)

سأقوم بالتعديل كما أذهب

def logged_in?
  return true if current_user 
end 

def login_required 
  return true if logged_in? 
  store_location 
  redirect_to new_user_session_path and return false                                                                                                                                                                                                                      
end 

يحتوي Authlogic على وظيفة إضافية تم تطويرها خصيصًا لها ، والتي يمكن العثور عليها هنا.

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