2010-07-29 9 views
2

Après avoir ajouté le composant Auth lors de l'accès à la page d'accueil, il redirige vers la page de connexion
, par exemple, que www.domain.com soit mon URL.
Après avoir ajouté le composant auth lorsque j'essaie d'accéder à www.domain.com, il redirige vers www.domain.com/logins/login. Comment puis-je éviter cette redirection initiale?Auth Le composant redirige automatiquement dans cakePHP

je l'ai déjà donné un itinéraire ci-dessous

Router::connect('/', array(
    'controller' => 'pages', 'action' => 'display', 'home' 
)); 

mais aucune utilisation
thankz à l'avance

+0

lorsque j'essaie d'utiliser var $ components = array ('Auth'); dans app_controller et ignorer cette instruction dans pages_controller, les instructions "allowedActions" ne prennent pas effet. iam utilise GâteauPHP 1.2. n'importe quel corps a une idée où je vais mal? – RSK

Répondre

2

In AppController::beforeFilter() add the following:

$this->Auth->allowedActions = array('display'); 

MISE À JOUR: allowedActions sont les actions du contrôleur pour lequel la validation de l'utilisateur n'est pas Champs obligatoires. http://api.cakephp.org/2.4/source-class-AuthComponent.html#228-234

+0

Nb: affectera TOUTES les pages. Donc, vous auriez besoin de plus si par ex. vous voulez toujours que certaines pages soient protégées par Auth. –

+0

Que voulez-vous dire par "toutes les pages"? – bancer

+0

Si vous utilisez le paramètre 'PagesController' par défaut, l'action' display' gère plusieurs modèles - par ex. 'home.ctp' dans votre exemple ci-dessus. Si vous aviez d'autres "pages" (aka .templates) contrôlées par le 'PagesController', (par exemple' about.ctp') le fragment de code ci-dessus permettrait également de les voir sans authentification. Si c'est ce que vous vouliez, alors génial. Sinon, vous pouvez modifier 'PagesController', ou utiliser un autre contrôleur, etc. –

3

Dans votre pages_controller.php (si vous ne possédez pas déjà un dans app/controllers, copiez celui de cake/libs/controller:

function beforeFilter() 
{ 
    parent::beforeFilter(); 
    $this->Auth->allow('*'); 
} 
+1

N'oubliez pas de le changer par la suite! Ne vous laissez pas attraper en autorisant la connexion et la déconnexion, car ils sont disponibles par défaut dans le composant. Vérifiez le livre idéalement :) –

+0

@DY: Dans le contrôleur de pages, il ne devrait pas être un problème car il est là pour afficher les pages publiques qui ne correspondent pas ailleurs. J'aurais dû vérifier la valeur par défaut - il a en fait $ this-> Auth-> allowedActions = array ('display'); ce qui devrait être suffisant. – Leo

2

Vous pouvez aussi simplement ajouter ce code à votre contrôleur users pour l'arrêter de rediriger automatiquement, mais comme tout le monde dit d'autre, vous devriez également permettre display.

function beforeFilter() { 
    ... 
    $this->Auth->autoRedirect = false; 
} 

http://book.cakephp.org/view/395/autoRedirect

+0

Désolé nick c'est utilisé pour rediriger après la connexion réussie droit? mais thatz pas mon cas – RSK