在laravel中以用户身份登录

时间:2020-03-11 10:28:12

标签: php mysql laravel laravel-blade

我想知道是否有任何方法可以模拟以用户身份登录并为该用户进行会话。我希望我的帮助台从用户的角度查看网站,因此他们需要以用户身份登录,直到我无法将用户的密码显示给管理员(据我所知,如果不是这样,那是不可能的)。我想放置一个带有一些文本的按钮,例如:

strcmp(name,strrev(name))

当我的服务台单击该按钮时,他登录,因为用户可以执行任何操作?

3 个答案:

答案 0 :(得分:1)

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

Route::get('admin/login-as-user/{id}', 'Admin\UserController@loginAsUser')->name('login.as.user');

之后,将路径传递到您需要的LoginAsThisUser的{​​{1}}按钮:

user id

并在您的控制器中创建一个函数:

<a href="{{route('login.as.user'), $user->id}}" class="btn btn-default">LoginAsThisUser</a>

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

答案 1 :(得分:1)

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);

如果您要切换默认防护罩

答案 2 :(得分:1)

通过Auth外观,您可以使用loginUsingId方法

Auth::loginUsingId($user_id);

此方法使您无需密码即可强制登录。但是它不允许您从用户的浏览器中检索cookie或缓存,这可能会影响他们的浏览。