为了账号安全,请及时绑定邮箱和手机立即绑定

在 laravel 中以用户身份登录

在 laravel 中以用户身份登录

PHP
函数式编程 2022-10-28 11:01:24
我想知道是否有任何方法可以模拟以用户身份登录并为该用户建立会话。我希望我的帮助台从用户的视野中看到该网站,因此只要我无法显示,他们就需要以用户身份登录用户对管理员的密码(据我所知,这不是一个好的解决方案,这是不可能的)。我想放置一个带有一些文本的按钮,例如:LoginAsThisUser当我的帮助台点击他以用户身份登录的按钮时,有什么办法可以做到这一点?
查看完整描述

3 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

这是可能的,而且做起来相当简单。您需要做的就是创建一条路线,如下所示:


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)

{

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

     Auth::login($user);

     return redirect('/');

注意:这未经测试,如果您遇到任何错误,请告诉我。


查看完整回答
反对 回复 2022-10-28
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

使用 Auth 门面,您可以使用 loginUsingId 方法

Auth::loginUsingId($user_id);

此方法允许您在没有密码的情况下强制登录。但它不允许您从用户的浏览器中检索可能影响他们查看的 cookie 或缓存。


查看完整回答
反对 回复 2022-10-28
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

use Illuminate\Support\Facades\Auth;


//use user_id

Auth::loginUsingId(1);


// Login and "remember" the given user...

Auth::loginUsingId(1, true);


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



//use Authenticatable user

Auth::login($user);


// Login and "remember" the given user...

Auth::login($user, true);

也使用 Auth::guard('notDeafault')->login($user);


如果你想切换默认守卫


查看完整回答
反对 回复 2022-10-28
  • 3 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信