Authlogic و Oauth-Plugin
-
05-07-2019 - |
سؤال
هل تم اختبار شخص ما - هل سيعمل 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 على وظيفة إضافية تم تطويرها خصيصًا لها ، والتي يمكن العثور عليها هنا.