api.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. use Illuminate\Http\Request;
  3. use Illuminate\Support\Facades\Route;
  4. use Illuminate\Support\Facades\Hash;
  5. use Illuminate\Validation\ValidationException;
  6. use App\Models\User;
  7. /*
  8. |--------------------------------------------------------------------------
  9. | API Routes
  10. |--------------------------------------------------------------------------
  11. |
  12. | Here is where you can register API routes for your application. These
  13. | routes are loaded by the RouteServiceProvider within a group which
  14. | is assigned the "api" middleware group. Enjoy building your API!
  15. |
  16. */
  17. Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
  18. return $request->user();
  19. });
  20. Route::post('/login', function (Request $request) {
  21. $request->validate([
  22. 'email' => 'required|email',
  23. 'password' => 'required',
  24. ]);
  25. $user = User::where('email', $request->email)->first();
  26. if (! $user || ! Hash::check($request->password, $user->password)) {
  27. throw ValidationException::withMessages([
  28. 'email' => ['The provided credentials are incorrect.'],
  29. ]);
  30. }
  31. return [
  32. 'token' => $user->createToken('login')->plainTextToken,
  33. 'userData' => json_encode($user),
  34. ];
  35. });
  36. Route::middleware('auth:sanctum')->post('/logout', function (Request $request) {
  37. $user = $request->user();
  38. $user->tokens()->delete();
  39. return $user;
  40. });