Autenticazione CakePHP con prefisso Routing
-
19-09-2019 - |
Domanda
Sto costruendo un sito con CakePHP che vorrei avere 3 sezioni:
- area pubblica
- area utente
- area di amministrazione
Ho installato il prefisso di routing in routes.php che assomiglia
Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));
lo voglio così eventuali azioni con il prefisso user_ reindirizzerà ad una schermata di login, se non già effettuato l'accesso e tipo di utente è 'normale' (domanda lato: può un utente essere normale: P) e le eventuali azioni con admin_ prefisso anche reindirizzare ma richiedono tipo di utente di amministratore.
ho iniziato cercando di utilizzare il componente Auth, ma sembra piuttosto inflessibile mentre ACL sembra sopra le righe. Qualcuno potrebbe offrire alcuni consigli sul modo migliore per ottenere ciò che voglio?
Soluzione
Il componente Auth dovrebbero essere sufficienti flessibile per questo.
Si potrebbe fare un beforeFilter()
in questo modo:
// I think it's params['prefix'], might be different
// vvvvvvvvvvvvvvvv
if (isset($this->params['prefix'])) {
$this->Auth->userScope = array('User.type' => $this->params['prefix']);
}
È anche possibile aggiungere funzioni isAuthorized()
per sia il vostro modello o di controllo su una base come-necessaria per fare l'autenticazione ancora più avanzato. Vedere http: //book.cakephp .org / 1.3 / it / I-Manuale / core-Componenti / Authentication.html # authcomponent-variabili .