🏊🏊♂️🏊♀️
NS’App v1.0
-- Authentification avec JWT
Authentification avec JWT
Installer JWT
composer require php-open-source-saver/jwt-auth
Publier la configuration JWT
php artisan vendor:publish --provider="PHPOpenSourceSaverJWTAuthProvidersLaravelServiceProvider"
Générer une clé JWT
php artisan jwt:secret
Modifier config/auth.php
Ajoutez :
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
Modifier User.php pour JWT
use PHPOpenSourceSaverJWTAuthContractsJWTSubject;
class User extends Authenticatable implements JWTSubject {
public function getJWTIdentifier() {
return $this->getKey();
}
public function getJWTCustomClaims() {
return [];
}
}
Créer AuthController.php
use IlluminateHttpRequest;
use AppModelsUser;
use IlluminateSupportFacadesAuth;
use PHPOpenSourceSaverJWTAuthFacadesJWTAuth;
class AuthController extends Controller {
public function register(Request $request) {
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
return response()->json(['token' => JWTAuth::fromUser($user)]);
}
public function login(Request $request) {
$credentials = $request->only('email', 'password');
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return response()->json(['token' => $token]);
}
public function logout() {
JWTAuth::invalidate(JWTAuth::getToken());
return response()->json(['message' => 'Déconnexion réussie']);
}
}
Upload de Fichiers
Créer la Migration pour les fichiers
php artisan make:migration create_files_table
Définir le schéma de la table
Schema::create('files', function (Blueprint $table) {
$table->id();
$table->string('filename');
$table->string('path');
$table->timestamps();
});
php artisan migrate
`