[[oktatas:web:back-end_framework:laravel:laravel_rest_api|< Laravel API]] ====== Laravel API Basic azonosítás ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2021, 2022 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== Bevezetés ===== Adott egy Laravel projekt, ahol szeretnék Basic azonosítást beállítani. A beállításhoz middleware-t fogunk használni, amivel belenyúlhatunk a beérkező HTTP kérésekbe. ===== Azonosítás telepítése ===== php artisan make:middleware AuthBasic ===== Beállítás ===== A middleware programokat az app/Http/Middleware/ könyvtárban tartjuk. Szerkesszük a következő fájlt: * app/Http/Middleware/AuthBasic.php //... use Illuminate\Support\Facades\Auth; class AuthBasic { public function handle($request, Closure $next) { if(Auth::onceBasic()) { return response()->json(['message' => 'Auth failed'], 401); }else { return $next($request); } } } Szerkesszük a Kernel.php fájlt: 'api' => [ 'throttle:60,1', 'bindings', \App\Http\Middleware\AuthBasic::class, ], ===== Felhasználókezelés ===== Az adatbázis users tábláját szerkeszthetjük bármilyen SQLite kezelővel, például [[https://dbeaver.io/|DBeaver]]. De használhatunk **Breeze** azonosítást is, ahol webes felületen tudjuk regisztrálni a felhasználókat. Ha saját adatbáziskezelőt használunk, a jelszót titkosítani kell, bcrypt titkosítóval. Kódolás: 12, ]; echo password_hash("titok", PASSWORD_BCRYPT, $options); Futtatás: php encode.php A kimenet például: $2y$12$MEgwtQuTzvBCuNWup.JQWeSsNWoJK75vGhGl0KPaIplyecdopse9O ===== Tesztelés ===== Indítsuk el az Insomnia-t. Készítsünk egy POST kérést, ahol az Auth fülön Basic azonosítást állítunk be. Paraméterek: * USERNAME: janos@zold.lan * PASSWORD: titok ===== Linkek ===== * https://laravel.com/docs/9.x/authentication#stateless-http-basic-authentication (2022)