在 Laravel 中获取当前登录用户可通过 auth() 辅助函数、Auth 门面或依赖注入实现,推荐结合中间件使用 auth()->check() 判断登录状态并确保路由安全。

在 Laravel 的 Controller 中获取当前登录的用户信息非常简单,Laravel 提供了 Auth 门面和辅助函数 auth() 来快速访问认证用户。
最常用的方式是使用全局的 auth() 函数:
$user = auth()->user(); —— 获取完整用户模型实例$id = auth()->id(); —— 直接获取当前用户的 IDauth()->check() —— 判断是否有用户登录示例代码:
public function profile()
{
if (auth()->check()) {
$user = auth()->user();
return response()->json([
'name' => $user->name,
'email' => $user->email
]);
}
return response()->json(['message' => '未登录'], 401);
}你也可以使用 Auth 门面,效果相同:
use Illuminate\Support\Facades\Auth;
Auth::user()、Auth::id()、Auth::check()
示例:
use Illuminate\Support\Facades\Auth;
public function dashboard()
{
$user = Auth::user();
return view('dashboard', compact('user'));
}Laravel 支持在方法中直接注入 \Illuminate\Http\Request 或使用 User 类型提示:
use Illuminate\Http\Request;
public function index(Request $request)
{
$user = $request->user(); // 获取当前登录用户
// 或者:
// $user = $request->user();
}更优雅的方式是使用路由模型绑定结合中间件:
use App\Models\User;
public function show(User $user)
{
// 确保只能查看自己的信息
if ($user->id !== auth()->id()) {
abort(403);
}
return view('profile', compact('user'));
}auth()->user() 前先用 auth()->check() 判断是否登录以上就是Laravel怎么在Controller中获取当前登录的用户信息的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号