Ajout de l'authentification

This commit is contained in:
Dayamond
2025-10-18 16:52:01 +02:00
parent 70fbc02918
commit 1c00dbdb85
7 changed files with 94 additions and 5 deletions
+28
View File
@@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\ValidationException;
class AuthController extends Controller
{
public function login(Request $request): \Illuminate\Http\JsonResponse
{
$credentials = $request->validate([
'email' => ['required','email'],
'password' => ['required'],
]);
if (!Auth::attempt($credentials, remember: true)) {
return response()->json(['message' => 'Invalid credentials'], 422);
}
$request->session()->regenerate();
return response()->json(['message' => 'ok']);
}
}
+1 -1
View File
@@ -11,7 +11,7 @@ return Application::configure(basePath: dirname(__DIR__))
health: '/up', health: '/up',
) )
->withMiddleware(function (Middleware $middleware): void { ->withMiddleware(function (Middleware $middleware): void {
// $middleware->statefulApi();
}) })
->withExceptions(function (Exceptions $exceptions): void { ->withExceptions(function (Exceptions $exceptions): void {
// //
+1 -1
View File
@@ -29,6 +29,6 @@ return [
'max_age' => 0, 'max_age' => 0,
'supports_credentials' => false, 'supports_credentials' => true,
]; ];
+1 -1
View File
@@ -17,7 +17,7 @@ return [
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( 'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf(
'%s%s', '%s%s',
'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', 'localhost,localhost:5173,127.0.0.1,127.0.0.1:8000,::1',
Sanctum::currentApplicationUrlWithPort(), Sanctum::currentApplicationUrlWithPort(),
// Sanctum::currentRequestHost(), // Sanctum::currentRequestHost(),
))), ))),
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->primary();
$table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->longText('payload');
$table->integer('last_activity')->index();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sessions');
}
};
@@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
if (!Schema::hasColumn('users', 'remember_token')) {
$table->rememberToken()->nullable();
}
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
if (Schema::hasColumn('users', 'remember_token')) {
$table->dropColumn('remember_token');
}
});
}
};
+5 -2
View File
@@ -1,9 +1,9 @@
<?php <?php
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController; use App\Http\Controllers\UserController;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\DB;
Route::get('/user', function (Request $request) { Route::get('/user', function (Request $request) {
return $request->user(); return $request->user();
@@ -13,10 +13,13 @@ Route::get("/hello", function (Request $request) {
return "Hello"; return "Hello";
}); });
Route::get('/test-db', function () { Route::get('/test-db', function () {
$user = \App\Models\User::find(1); $user = \App\Models\User::find(1);
echo $user->email; echo $user->email;
}); });
Route::post("/user/create", [UserController::class, "create"]); Route::post("/user/create", [UserController::class, "create"]);
Route::middleware('web')->post('/login', [AuthController::class, 'login']);
Route::middleware(['web', 'auth'])->get('/me', fn (Request $r) => $r->user());