В моем Api\AuthController у меня есть этот метод для получения пользователя:
Код: Выделить всё
public function login(LoginRequest $request)
{
$data = $request->validated();
$user = User::where('email', $data['email'])->first();
if (!$user || !Hash::check($data['password'], $user->password)) {
return response()->json([
'message' => __('user-controller.incorrect_mail')
], 401);
}
$token = $user->createToken('auth-token')->plainTextToken;
$cookie = cookie('token', $token, 60 * 24); // 1 day
return response()->json([
'user' => new UserResource($user)
])->withCookie($cookie);
}
//get the authenticated user
public function user(Request $request)
{
return new UserResource($request->user());
}
Код: Выделить всё
public function bookingInitiate(Request $request)
{
$authCont = new AuthController();
$authenticatedUser = $authCont->user($request);
if ($authenticatedUser->resource) {
// User is authenticated
// perform some actions
return $authenticatedUser;
} else {
// User is not authenticated
// do something else
return response()->json(['error' => 'User is not authenticated'], 401);
}
Это мой api.php:
Код: Выделить всё
Route::middleware('auth:sanctum')->group(function () {
//Routes that require authentication go here...
Route::get('/user', [AuthController::class, 'user']);
// Password Update route
Route::get('/validate-token', [AuthController::class, 'validateToken']);
Route::post('/logout', [AuthController::class, 'logout']);
Route::prefix('admin')->group(function () {
Route::apiResource('staffs', UserController::class);
Route::post('update-password', [AuthController::class, 'updatePassword']);
});
//Route::get('/check-auth', [UserController::class, 'isAuthenticated']);
});
Route::post('/booking/initiate', [TempBookingController::class, 'bookingInitiate']);
*Я не могу добавьте больше тегов, чем просто PHP, есть проблема с SO. Да, я могу войти с текущим кодом. Пожалуйста, не редактируйте эту часть, я отредактирую ее позже, как только смогу комментировать.
Подробнее здесь: https://stackoverflow.com/questions/786 ... cated-user