[[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)