2. Modulo Hybridauth
● Il modulo Yii-Hybridauth è un wrapper di
Hybridauth
● Interagisce con il database attraverso la tabella
user, modificando il campo token (identificativo
univoco fornito da ciascun sistema di
autenticazione)
● Mysql.user: http://pastebin.com/PtG0aqJT
● La configurazione del modulo viene effettuata
come di seguito:
● http://pastebin.com/jzNDucf1
3. Default (CController)
● Entrambe le pagine dalle quali è possibile
effettuare il login utilizzano lo stesso controller
per l'autenticazione
● Se il login viene effettuato durante la procedura
di acquisto, nella GET con la quale viene
chiamato il controller è presente anche il
parametro purchase con il valore di 1
● Es: http://shop.tradenet.it/hybrid/defaut?purchase=1
4. Profili utenti
● I profili utenti sono hardcoded
● Guest: rappresenta gli utenti non loggati
● Buyer: rappresenta gli utenti loggatie
● Admin: rappresenta gli amministratori
● Si trovano nel file config/main.php come
elementi dell'array params
● Configurazione applicazione:
http://pastebin.com/m5G4R2jH
5. TStoreUser (CComponent)
● E' la classe che controlla i privilegi di accesso degli utenti
● Yii::app()->user->is('admin');
● Viene configurata dal file config/main.php
● Espone alcuni metodi utilizzati che forniscono
● Il contatore delle invoice per utente
● Il contatore delle sottoscrizioni attive
● Il contatore delle sottoscrizioni in sospeso
● Vi sono due componenti standard che si occupano del controllo delle
autorizzazioni:
● CDbAuthManager: basato su database, permette di specificare role, task, item. E'
estremamente personalizzabile ma a volte può essere troppo articolato e, in alcuni
casi, quando non correttamente ottimizzato, può essere lento
● CPhpAuthManager: basato su file, permette alcune semplici regole di autorizzazione
● Sul sito di Yii vi sono però altri componenti o estensioni che gestiscono le
regole di autorizzazione
6. UserIdentity (CComponent)
● E' la classe che effettua il login e il logout degli
utenti quando il sistema di autenticazione non è
quello di Hybridauth
● Richiede l'utilizzo di una tabella sql (è il caso
dell'utente con profilo admin) oppure può
essere hardcoded
8. Component
● Se il sistema di autenticazione proprietario ha
una struttura semplice (un paio di classi PHP,
ad esempio) la forma del CComponent
permette una integrazione quasi immediata
● I metodi delle classi di autenticazione saranno
resi disponibili nella forma:
● Yii::app()->nomeComponent->metodo();
● Nota: tutti i component sono sottoposti a
preloading
9. Extension
● Se il sistema di autenticazione è lievemente
articolato ma non necessita di un ambiente di
esecuzione indipendente, la forma extension
permette una maggiore flessibilità rispetto
alla forma component (possibilità di utilizzare
tutta una serie di risorse aggiuntive)
● Permette anche di utilizzare dei controller per le
chiamate ai servizi di autenticazione
● Richiede un poco di attenzione nella
configurazione
10. Controller
● Nel caso il sistema di autenticazione sia
costituito da un'applicazione a se stante che
comunica con delle chiamate HTTP la forma
controller è quella che maggiormente si presta
all'integrazione
● E' senza dubbio la più veloce da implementare
● Non offre grande elasticità perchè le
applicazioni comunicano solo attraverso
chiamate HTTP e non condividono variabili di
ambiente, tabelle su database ecc..
11. Modulo
● E' la forma di elezione per l'accorpamento di intere
applicazioni
● Offre un ambiente indipendente dall'applicazione
madre e, allo stesso tempo, collegato
● E' facilmente configurabile
● Offre una grande elasticità: è possibile utilizzare una
qualsiasi delle risorse disponibili a un'applicazione Yii
● Richiede una riscrittura del codice affinchè esso
rientri nello standard di Yii