Laravel 中的这段代码我想将其用作 API 来向每个访问我的应用程序的人显示它。我想在他登录时获取用户 ID
public function show($displayType)
{
try {
$data = houses::where('displayType', $displayType)->paginate(5);
$user = auth()->user(); // Get the authenticated user
$userId = $user ? $user->id : null; // Check if user is authenticated and get the user ID
return response()->json([
'status' => true,
'message' => 'You have successfully retrieved data',
'data' => $data,
'user_id' => $userId, // Include the user ID in the response
]);
} catch (\Throwable $th) {
return response()->json([
'status' => false,
'message' => $th->getMessage(),
], 500);
}
}
我想检查访问我网站的人是否已登录
但问题是当我发送令牌时返回用户 id null 这就是如何使用我的路由请求。// 这是我的路线,我在中间件检查中使用它
Route::get('houses/{displayType}',[housesController::class, 'show']);
Route::middleware('auth:api')->group(function () {})
默认用法
使用该
check()
函数来验证用户是否登录。在 Blade 中,指令也可用于简化这些函数的调用。
我们可以明确指定只有登录的用户才能访问路由。
使用另一个 Auth Guard 的额外配置
Laravel 默认情况下应用
web
基于会话的身份验证。如果你想偏离这一点,你需要通过设置与 Laravel 进行正确的沟通。如果您想使用基于令牌的 API 身份验证进行默认登录,则需要根据文档defaults.guard
适当修改该值。config/auth.php
如果您不想修改此值,则可以选择使用该
guard()
函数在每个请求中覆盖此值。