Creare un Plugin con autenticazione utente in CakePHP 3.x

Home » AOBuilder » Creare un Plugin con autenticazione utente in CakePHP 3.x
AOBuilder, CakePHP Nessun commento

In questo breve tutorial è illustrato come creare un Plugin con autenticazione utente, in una applicazione CakePHP 3.x. che utilizza il plugin AOBuilder. Utilizzando il BAKE realizzeremo lo skeleton del plugin, modificando l’appController definiremo i metodi di login e logout,  attraverso un PagesController gestiremo le richieste dei contenuti statici, ed infine attraverso il file delle routes, ruoteremo le richieste le dei contenuti opportunamente. Alla fine verrà presentato un file template, per creare pagina di login.

Installazione del plugin

Come primo passo installiamo il plugin utilizzando il BAKE, lanciando il comando:

A questo punto il plugin è stato creato in /plugins/MyArea, assicurarsi che il plugin sia stato caricato nel bootstrap dell’applicazione principale /config/bootstrap.php e che l’impostazione di autoload sia stata aggiunta in composer.json nella root dell’applicazione. Queste due operazioni in genere sono automatiche durante l’installazione ed i messaggi dovrebbero comparire nella shell. Qualora l’autoload del plugin non è stato eseguito in fase di installazione, è possibile intervenire manualmente in /config/bootstrap.php come con il seguente comando:

Come modificare i controllers

A questo punto modifichiamo l’AppController, contenuto in /plugins/src/Controller, per integrare una versione modificata dell’AuthComponent nativo in CakePHP.

Pages Controller

Creiamo il PagesController in /plugins/MyArea/src/Controller per la gestione di tutte le pagine statiche che vogliamo creare e proteggere da login utente. Per come definito nell’AppController del plugin, nella funzione isAuthorized(), è possibile definire le pagine che è possibile invocare senza autenticazione, aggiungendo il nome della pagina all’array $permitted.

Il PagesController sopra definito esegue il render dei templates creati e salvati in /plugins/MyArea/src/Template/Pages.

Configurazioni

A questo punto si rende necessario modificare le routes in /plugins/MyArea/config/routes.php per la rotazione dei contenuti statici utilizzando il PagesController sopra descritto.

Creazione il template di Login

Viene riportato come esempio un template di login, che usa i settaggi ed i file del plugin AOBuilder.

Conclusioni

A questo e possibile testare il funzionamento collegandosi all’url (es. http://mio-progetto/my-area) e dovrebbe comparire la schermata di login come nell’immagine di seguito riportata.

My Area operatore in plugin con autenticazione utente

My Area operatore in plugin con autenticazione utente

 

LEAVE A COMMENT