2016-03-18 49 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