قوة مصادقة مريحة لتسجيل الدخول كمستخدم معين (وظيفة مسؤول)؟

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

سؤال

أنا أستخدم مصادقة مريحة وأرغب في أن أكون قادرا على تسجيل الدخول كمستخدمين مختلفين على موقعنا للتحقيق في القضايا التي قد تواجهها ("انظر ما يرونه"). نظرا لأن جميع كلمات المرور المشفرة، فمن الواضح أنها لا تستطيع فقط استخدام كلمات المرور الخاصة بهم.

لذلك، كيف يمكنني إجبار جلسة تسجيل الدخول كمستخدم معين؟

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

المحلول

  • في الخاص بك 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. وبعد سيتم بعد ذلك "أصبح المسؤول" هذا المستخدم.

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