2
4

1 回答 1

7

你可以试试我在我的一个项目中所做的——实现非常简单,也许你也可以利用它。

我们的AuthController中有额外的操作,允许用户切换到其他用户并记住会话中的当前用户 ID:

public function switchUser($userId)
{
    // disallow switched users from switching again
    if (Session::get('previous_user')) App::abort(403);

    $user = User::findOrFail($userId);

    Session::set('previous_user', Auth::id());

    Auth::login($user);

    return redirect('some path');
}

第二部分是自定义注销功能,对于切换的用户,将他们切换回原来的用户帐户而不是注销:

public function getLogout()
{
    if ($previousUser = Session::get('previous_user')) {
        Session::remove('previous_user');
        Auth::loginUsingId($previousUser);

        return redirect('some path');
    }

    Auth::logout();

    return redirect('some path');
}

使用该逻辑,您将能够切换到其他用户并返回。您可能需要添加权限检查,以便只有管理员才能执行此操作等,将列表中的客户链接到交换机 URL,无论如何功能的核心都在上面的代码中。

于 2015-12-15T15:41:51.760 回答