Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni

CodeIgniter 4 REST API Tutorial - JWT

Caricato da

theant72
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni

CodeIgniter 4 REST API Tutorial - JWT

Caricato da

theant72
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato DOCX, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 4

CodeIgniter 4 REST API Tutorial – JWT Auth

(https://medium.com/geekculture/codeigniter-4-tutorial-restful-api-jwt-authentication-
d5963d797ec4)

Questa volta parleremo dell'API Restful con l'autenticazione JWT. Prima di continuare,
discuteremo di ciò che viene chiamato API e JWT. API sta per Application Program
Interface, API è un'interfaccia che consente alle applicazioni di scambiare dati. Per
renderlo più chiaro, un'API è una raccolta di funzioni che possono essere utilizzate dai
programmatori per creare software e applicazioni.

JWT sta per JSON Web Token, è uno standard aperto (RFC 7519) che definisce un modo
compatto e autonomo per trasmettere in modo sicuro le informazioni tra le parti come
oggetti JSON. JWT è generalmente utilizzato per l'autorizzazione, lo scambio di
informazioni e altri.

Ora creeremo l'applicazione.

Step 1: Installare CodeIgniter 4


Installa tramite composer:

composer create-project codeigniter4/appstarter ci-4-jwt

Step 2: modificare l'ambiente CodeIgniter


L'impostazione predefinita di CodeIgniter è production, questa è una funzionalità di
sicurezza per aggiungere sicurezza all'applicazione. Quindi cambiamo il nome del file env
in .env aggiungiamo un punto al tuo env. Dopo essere stato rinominato, apriamo quindi il
file .env e cambieremo alcuni comandi.

CI_ENVIRONMENT = development

Step 3: Configurare il Database


Dopo aver impostato il .env, configuriamo il database. Possiamo configurarlo in .env o nel
file di configurazione che si trova in app/Config/Database.php. Per questo tutorial lo
configureremo in app/Config/Database.php.

Creiamo il database chiamandolo ci_4_jwt e lo configuriamo nell’array $default del file


precedente inserendo i parametri hostname, username, password e database.

1
Step 4: Model e Migration
model: la classe che rappresenta la tabella del database.
migration: come il controllo della versione per un database che ci consente di modificare
e condividere lo schema del database con il tuo team.

Esegui questo comando nel terminale o cmd per creare il model:

php spark make:model UserModel

apri il model creato in app/Models/UserModel.php. Nel file puoi vedere le opzioni di


configurazione, puoi leggere la documentazione per saperne di più. Ora aggiorneremo la
configurazione:

Dopo aver creato il modello, creeremo il file di migrazione. Esegui questo comando nel
terminale o in CMD per creare la migrazione:

php spark make:migration AddUser

Apriamo il file di migrazione creato in app/Database/Migrations/ e incolla il seguente


codice:

public function up() {


$this->forge->addField([
'id' => [
'type' => 'BIGINT',
'constraint' => 255,
'unsigned' => true,
'auto_increment' => true
],
'email' => [
'type' => 'VARCHAR',
'unique' => true,
'constraint' => '255',
],
'password' => [
'type' => 'VARCHAR', 'constraint' => '255',
],
'created_at' => ['type' => 'TIMESTAMP', 'null' => true ],
'updated_at' => ['type' => 'TIMESTAMP', 'null' => true ],
]);

$this->forge->addPrimaryKey('id');
$this->forge->createTable('users');
}

public function down() {


$this->forge->dropTable('users');

2
}

Eseguire la migrazione eseguendo il comando migrate:

php spark migrate

Step 5: Installare il Package JWT


Quindi installeremo il pacchetto jwt usando composer:

composer require firebase/php-jwt

Dopo aver installato il pacchetto jwt, aggiungiamo JWT_SECRET al file .env.

#-----------------------------------------------------------------
# JWT
#-----------------------------------------------------------------
JWT_SECRET = 'JWT SECRET KEY SAMPLE HERE'

Step 6: Creare Controllers


Il Controller è responsabile del ricevere una richiesta e restituire una risposta.
Eseguiamo il comando seguente nel terminale o in CMD per creare un Controller:

php spark make:controller Login

Dopo aver eseguito il comando, verrà creato un file situato in app/Controllers. Apriamo il
file e inseriamo il seguente codice:

namespace App\Controllers;

use App\Controllers\BaseController;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel;
use Firebase\JWT\JWT;

class Login extends BaseController {


use ResponseTrait;
...
}

Creiamo il Controller Register con il comando seguente:

3
php spark make:controller Register

Dopo aver eseguito il comando, verrà creato un file situato in app/Controllers. Apriamo il
file ed inseriamo il seguente codice:

namespace App\Controllers;

use App\Controllers\BaseController;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel;

class Register extends BaseController


{
use ResponseTrait;
...
}

Creiamo il Controller User con il comando seguente:

php spark make:controller User

Dopo aver eseguito il comando, verrà creato un file situato in app/Controllers. Apriamo il
file ed inseriamo il seguente codice:

namespace App\Controllers;

use App\Controllers\BaseController;
use CodeIgniter\API\ResponseTrait;
use App\Models\UserModel;
use Firebase\JWT\JWT;

class User extends BaseController {


use ResponseTrait;
public function index() {
$users = new UserModel;
return $this→respond([
'users' => $users->findAll()], 200);
}
}

Potrebbero piacerti anche