Skip to content

Commit 4f15d7d

Browse files
committed
fix sanctum configuration
1 parent 9cf2ea9 commit 4f15d7d

File tree

5 files changed

+49
-17
lines changed

5 files changed

+49
-17
lines changed

bootstrap/app.php

+2
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@
99
return Application::configure(basePath: dirname(__DIR__))
1010
->withRouting(
1111
web: __DIR__ . "/../routes/web.php",
12+
api: __DIR__ . "/../routes/api.php",
1213
commands: __DIR__ . "/../routes/console.php",
1314
health: "/up",
1415
)
1516
->withMiddleware(function (Middleware $middleware): void {
17+
$middleware->statefulApi();
1618
})
1719
->withExceptions(function (Exceptions $exceptions): void {
1820
})->create();

config/cors.php

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
return [
6+
/*
7+
|--------------------------------------------------------------------------
8+
| Cross-Origin Resource Sharing (CORS) Configuration
9+
|--------------------------------------------------------------------------
10+
|
11+
| Here you may configure your settings for cross-origin resource sharing
12+
| or "CORS". This determines what cross-origin operations may execute
13+
| in web browsers. You are free to adjust these settings as needed.
14+
|
15+
| To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
16+
|
17+
*/
18+
19+
"paths" => ["api/*", "sanctum/csrf-cookie"],
20+
21+
"allowed_methods" => ["*"],
22+
23+
"allowed_origins" => ["*"],
24+
25+
"allowed_origins_patterns" => [],
26+
27+
"allowed_headers" => ["*"],
28+
29+
"exposed_headers" => [],
30+
31+
"max_age" => 0,
32+
33+
"supports_credentials" => false,
34+
];

database/seeders/DatabaseSeeder.php

+5-3
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ public function run(): void
1414
$this->call(RoleSeeder::class);
1515
$this->call(PermissionsSeeder::class);
1616

17-
User::factory([
18-
"email" => "[email protected]",
19-
])->admin()->create();
17+
if (User::query()->where("email", "=", "[email protected]")->count() === 0) {
18+
User::factory([
19+
"email" => "[email protected]",
20+
])->admin()->create();
21+
}
2022
}
2123
}

routes/api.php

+8-12
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,27 @@
33
declare(strict_types=1);
44

55
use CommunityWithLegends\Models\User;
6-
use Illuminate\Http\JsonResponse;
76
use Illuminate\Http\Request;
87
use Illuminate\Support\Facades\Hash;
98
use Illuminate\Support\Facades\Route;
109
use Illuminate\Validation\ValidationException;
1110

12-
Route::middleware("auth:sanctum")->get("/user", fn(Request $request): JsonResponse => new JsonResponse($request->user()));
13-
Route::post('/sanctum/token', function (Request $request) {
11+
Route::post("/auth/token", function (Request $request) {
1412
$request->validate([
15-
'email' => 'required|email',
16-
'password' => 'required',
17-
'device_name' => 'required',
13+
"email" => "required|email",
14+
"password" => "required",
15+
"device_name" => "required",
1816
]);
1917

20-
$user = User::where('email', $request->email)->first();
18+
$user = User::query()->where("email", $request->email)->first();
2119

22-
if (! $user || ! Hash::check($request->password, $user->password)) {
20+
if (!$user || !Hash::check($request->password, $user->password)) {
2321
throw ValidationException::withMessages([
24-
'email' => ['The provided credentials are incorrect.'],
22+
"email" => ["The provided credentials are incorrect."],
2523
]);
2624
}
2725

2826
return $user->createToken($request->device_name)->plainTextToken;
2927
});
3028

31-
Route::get("/a", fn(): JsonResponse => response()->json([
32-
"message" => "Welcome2",
33-
]));
29+
Route::get("/user", fn(Request $request) => $request->user())->middleware("auth:sanctum");

routes/web.php

-2
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,3 @@
88
Route::get("/", fn(): JsonResponse => response()->json([
99
"message" => "Welcome",
1010
]));
11-
12-
include "api.php";

0 commit comments

Comments
 (0)