قوة مصادقة مريحة لتسجيل الدخول كمستخدم معين (وظيفة مسؤول)؟
-
13-09-2019 - |
سؤال
أنا أستخدم مصادقة مريحة وأرغب في أن أكون قادرا على تسجيل الدخول كمستخدمين مختلفين على موقعنا للتحقيق في القضايا التي قد تواجهها ("انظر ما يرونه"). نظرا لأن جميع كلمات المرور المشفرة، فمن الواضح أنها لا تستطيع فقط استخدام كلمات المرور الخاصة بهم.
لذلك، كيف يمكنني إجبار جلسة تسجيل الدخول كمستخدم معين؟
المحلول
في الخاص بك
sessions_controller
إضافة الإجراءimpersonate
مثله:def impersonate user = User.find(params[:id]) logout_killing_session! self.current_user = user flash[:notice] = t(:logged_in) redirect_to root_url end
ثم في طرق تمديد مورد الجلسة مع العضو
impersonate
:map.resource :session, :member => {:impersonate => :post}
أخيرا، يوجد في مكان ما في المشاهدات المشرف الخاصة بك زر إلى كل مستخدم يسمى "Antrersonate". سيتعين عليها أن تبدو مثل هذا (على افتراض أن المستخدم في المتغير المحلي
user
):<%= button_to "Impersonate", impersonate_session_path(:id => user.id) %>
باستخدام هذا النهج الذي تتجنبه أيضا طرح أي بيانات تتبع مثل الوقت من آخر تسجيل دخول، إلخ.
ملاحظة لا تنس أن تتطلب المشرف impersonate
العمل في جلسات تحكم.
نصائح أخرى
ببساطة تجاوز session[:user_id]
مع معرف المستخدم الذي تريد أن تكون. إحدى الطرق السهلة هي أن يكون لدى المستخدم تسجيل الدخول كمسؤول ثم امنحهم أسماء مستخدمين منسدلة. عند تقديم النموذج، لديك مجموعة تحكم session[:user_id]
ثم إعادة تحميل current_user
. وبعد سيتم بعد ذلك "أصبح المسؤول" هذا المستخدم.