在 laravel 中以用户身份登录

我想知道是否有任何方法可以模拟以用户身份登录并为该用户建立会话。我希望我的帮助台从用户的视野中看到该网站,因此只要我无法显示,他们就需要以用户身份登录用户对管理员的密码(据我所知,这不是一个好的解决方案,这是不可能的)。我想放置一个带有一些文本的按钮,例如:

LoginAsThisUser

当我的帮助台点击他以用户身份登录的按钮时,有什么办法可以做到这一点?


函数式编程
浏览 79回答 3
3回答

HUX布斯

这是可能的,而且做起来相当简单。您需要做的就是创建一条路线,如下所示:Route::get('admin/login-as-user/{id}', 'Admin\UserController@loginAsUser')->name('login.as.user');之后,将路线传递给您的LoginAsThisUser按钮所需的user id:<a href="{{route('login.as.user'), $user->id}}" class="btn btn-default">LoginAsThisUser</a>并在您的控制器中创建一个函数:public function loginAsUser($id){&nbsp; &nbsp; &nbsp;$user = User::findOrFail($id);&nbsp; &nbsp; &nbsp;Auth::login($user);&nbsp; &nbsp; &nbsp;return redirect('/');}&nbsp;注意:这未经测试,如果您遇到任何错误,请告诉我。

德玛西亚99

使用 Auth 门面,您可以使用 loginUsingId 方法Auth::loginUsingId($user_id);此方法允许您在没有密码的情况下强制登录。但它不允许您从用户的浏览器中检索可能影响他们查看的 cookie 或缓存。

料青山看我应如是

use Illuminate\Support\Facades\Auth;//use user_idAuth::loginUsingId(1);// Login and "remember" the given user...Auth::loginUsingId(1, true);$user=User::find($userId);//use Authenticatable userAuth::login($user);// Login and "remember" the given user...Auth::login($user, true);也使用 Auth::guard('notDeafault')->login($user);如果你想切换默认守卫
打开App,查看更多内容
随时随地看视频慕课网APP