Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:back-end_framework:laravel:laravel_api:sanctum_azonositas

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
oktatas:web:back-end_framework:laravel:laravel_api:sanctum_azonositas [2023/05/15 08:30] – [Laravel API Sanctum azonosítás] adminoktatas:web:back-end_framework:laravel:laravel_api:sanctum_azonositas [2023/05/15 22:29] (aktuális) – eltávolítva admin
Sor 1: Sor 1:
-[[oktatas:web:back-end_framework:laravel:laravel_api|< Laravel API]] 
  
-====== Laravel API Sanctum azonosítás ====== 
- 
-  * **Szerző:** Sallai András 
-  * Copyright (c) Sallai András, 2022, 2023 
-  * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] 
-  * Web: https://szit.hu 
- 
-===== Bevezetés ===== 
- 
-A Sanctum azonosítás alapértelmezetten rendelkezésre áll a Laravel projektekben. 
- 
- 
-===== AuthController ===== 
- 
-  php artisan make:controller AuthController 
- 
-Létrejön: 
-<code php app/Http/Controllers/AuthController.php> 
-<?php 
- 
-namespace App\Http\Controllers; 
- 
-use Illuminate\Http\Request; 
- 
-class AuthController extends Controller 
-{ 
-    // 
-} 
- 
-</code> 
- 
-Először használatba kell venni néhány névteret, majd 
-szükség van 3 függvényre: 
-<code php> 
-//... 
-use App\Models\User; 
-use Illuminate\Support\facades\Auth; 
- 
-class AuthController extends Controller 
-{ 
-    public function register(Request $request) { 
-        $fields = $request->validate([ 
-            'name' => 'required|string', 
-            'email' => 'required|string|unique:users,email', 
-            'password' => 'required|string|confirmed' 
-        ]); 
-        $user = User::create([ 
-            'name' => $fields['name'], 
-            'email' => $fields['email'], 
-            'password' => bcrypt($fields['password']) 
-        ]); 
-        $token = $user->createToken('sajatToken')->plainTextToken; 
-        $response = [ 
-            'user' => $user, 
-            'token' => $token 
-        ]; 
-        return response($response, 201); 
-    } 
-    public function login(Request $request) { 
-        if( Auth::attempt([ "name" => $request->name, "password" => $request->password ])) { 
-  
-            $authUser = Auth::user(); 
-            $success[ "token" ] = $authUser->createToken( "myapptoken" )->plainTextToken; 
-            $success[ "name" ] = $authUser->name; 
-  
-            return response( $success); 
-  
-        }else { 
-  
-            return response( "Hiba! A bejelentkezés sikertelen", [ "error" => "Hibás adatok" ]); 
-        } 
-    } 
-    public function logout( Request $request ) {         
-        $user = User::where('name', $request->name)->first(); 
-        $user->tokens()->where('id', $request->tokenId)->delete(); 
-        return response()->json(['message' => 'Kijelentkezve'], 200); 
-    }     
-} 
- 
-</code> 
- 
-Lássuk mit kell kliens oldalon küldeni egy token visszavonásához, azaz kijelentkezéshez. 
-A token visszavonásához elég elküldeni az azonosítót.  
- 
-<code javascript> 
-{ 
-    "name": "janos", 
-    "tokenId": "47" 
-} 
-</code> 
- 
-Úgy is működik, ha az egészet elküldöm: 
-<code javascript> 
-{ 
-    "name": "janos", 
-    "token": "47|1OoO3Dn7Gf9YVq0cpuM3YpYZFsquG0HXqgpmsglZ" 
-} 
-</code> 
- 
- 
- 
-  * Elérhető validációk [[https://laravel.com/docs/9.x/validation#available-validation-rules|itt]]. 
-  * Token visszavonása: [[https://laravel.com/docs/9.x/sanctum#revoking-mobile-api-tokens|itt]]. 
- 
- 
- 
-===== Routing ===== 
- 
-<code php> 
-Route::post('/register', [AuthController::class, 'register']); 
-Route::post('/login', [AuthController::class, 'login']); 
-Route::post('/logout', [AuthController::class, 'logout']); 
-</code> 
- 
-===== Regisztráció teszt ===== 
- 
-JSON tartalom, egy példa regisztrációhoz: 
-<code javascript> 
-{ 
-    "name": "janos", 
-    "email": "janos@zold.lan", 
-    "password": "titok", 
-    "password_confirmation": "titok" 
-} 
-</code> 
- 
- 
-===== Védelem beállítása ===== 
- 
-Azokat a végpontokat, ahol azonosítást szeretnénk, egyszerűen bemásoljuk 
-a Route::group() metódus paramétereként érkező névtelen függvénybe. 
- 
- 
-<code php> 
-Route::get('employees', [EmployeeController::class, 'index']); 
-Route::get('employees/{id}', [EmployeeController::class, 'show']); 
- 
-Route::group(['middleware' => ['auth:sanctum']], function () { 
-    Route::post('employees', [EmployeeController::class, 'store']); 
-    Route::put('employees/{id}', [EmployeeController::class, 'update']); 
-    Route::delete('employees/{id}', [EmployeeController::class, 'destroy']); 
-}); 
- 
-Route::post('/register', [AuthController::class, 'register']); 
-Route::post('/login', [AuthController::class, 'login']); 
-</code> 
- 
-===== Login ===== 
- 
-A következő JSON tartalmat küldjük el a belépéshez: 
- 
-<code javascript> 
-{ 
-    "name": "janos", 
-    "password": "titok" 
-} 
-</code> 
- 
-===== apiResource használata ===== 
- 
-Az útvonalak védelme beállítható egyetlen sorral, és 
-használhatunk mellette kivételt is. 
- 
-Az **index** metódust **külön** tesszük, mivel annak nem szeretnénk  
-azonosítást beállítani. 
- 
-<code php routes/api.php> 
-//... 
- 
-Route::group(['middleware' => ['auth:sanctum']], function(){ 
-    Route::apiResource('employees', EmployeeController::class) 
-    ->except('index'); 
-}); 
- 
-Route::get('employees', [EmployeeController::class, 'index']); 
- 
- 
-Route::post('register', [AuthController::class, 'register']); 
-Route::post('login', [AuthController::class, 'login']); 
- 
-</code> 
- 
-Az except függvény azt mondja, hogy az index() függvény kivétel, azt itt nem határozzuk meg. 
- 
-  * [[https://laravel.com/docs/9.x/controllers#api-resource-routes|apiResource dokumentáció]] 
-===== Link ===== 
-  * https://laravel.com/docs/8.x/sanctum (2022) 
-  * https://laravel.com/docs/9.x/sanctum (2022) 
-  * https://laravel.com/docs/10.x/sanctum (2023) 
oktatas/web/back-end_framework/laravel/laravel_api/sanctum_azonositas.1684132206.txt.gz · Utolsó módosítás: 2023/05/15 08:30 szerkesztette: admin