2016-03-18 48 views
0

我有一個面板與許多註冊用戶。我想爲每個用戶提供一個鏈接,當我點擊該鏈接時,我登錄該帳戶,而無需密碼。 正如經銷商系統一樣。經銷商管理員登錄客戶賬戶的賬戶(Parallels Plesk做到這一點)。登錄與設計 - 登錄帳戶點擊鏈接

所有用戶都在Devise註冊。 這可能嗎?

回答

1

是的。這是可能的。只需調用您調用的爲用戶創建會話的相同方法即可。該鏈接會像(你需要確保你正在使用的一個路徑一致):

<a href="https://stackoverflow.com/users/sign_in_as_user/<%= user['user_id'] %>" class="btn btn-default btn-xs">Sign In</a> 

與控制器是這樣的:

def sign_in_as_user 
    if current_user.admin? 
    user = User.find(params[:user_id]) 
    sign_in(user) 
    redirect_to '/wherever' 
    else 
    redirect_to '/' 
    end 
end 
+0

對不起延遲,我忘了反饋。您的解決方案完美無缺,謝謝!我只增加了一個參數。一個安全的哈希,與用戶數據的複雜組合。有了這個,在這個URL中嘗試了Id的人不能訪問,因爲需要更多信息 –

+0

太棒了!很高興幫助。 – toddmetheny