validated(); /** @var \App\Models\User $user */ $user = User::create([ 'user_fname' => $data['user_fname'], 'user_lname' => $data['user_lname'], 'user_phone' => $data['user_phone'], 'password' => bcrypt($data['password']), ]); $token = $user->createToken('main')->plainTextToken; // creates cookie token with XSFR and laravel_session return response(compact('user', 'token')); } public function signup(SignupRequest $request) { $data = $request->validated(); // validated() throws errors: for example: The email has already been taken. /** @var \App\Models\User $user */ $user = User::create([ 'user_fname' => $data['user_fname'], 'user_lname' => $data['user_lname'], 'user_phone' => $data['user_phone'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); $token = $user->createToken('main')->plainTextToken; return response(compact('user', 'token')); } //https://github.com/PrijalBista/laravel-api-auth-sanctum-boilerplate/blob/main/app/Http/Controllers/Api/Auth/AuthController.php public function sendPasswordResetLinkEmail(Request $request) { $request->validate(['email' => 'required|email']); $status = Password::sendResetLink( $request->only('email') ); if($status === Password::RESET_LINK_SENT) { return response()->json(['message' => __($status)], 200); } else { throw ValidationException::withMessages([ 'email' => __($status) ]); } } public function login(LoginRequest $request) { $credentials = $request->validated(); if (!Auth::attempt($credentials)) { return response([ 'message' => 'Provided email or password is incorrect', 'errors' => ['email' => ['Controller Error #72 - Invalid crendetials']] ], 422); } /** @var \App\Models\User $user */ $user = Auth::user(); $token = $user->createToken('main')->plainTextToken; return response(compact('user', 'token')); } public function logout(Request $request) { /** @var \App\Models\User $user */ $user = $request->user(); $user->currentAccessToken()->delete(); return response('', 204); } }