0

私のログイン方法:

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            return $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash('Please enter a valid username or password', 'errors/flash_error');
        }
    }
}

何らかの理由で、リダイレクト先のページにセッション情報が常に表示されるとは限りません。/random次の宛先にルーティングされるというページがあります。

Router::connect('/random', array('controller' => 'submissions', 'action' => 'random'));

に行くと/random、これは表示されません:

<?= $this->Session->read('Auth.User.username'); ?>

しかし、他のページに行くと、そうなります。

私のSubmissionsController.phpでbeforeFilter()

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->loginRedirect = array(
        'controller' => 'users',
        'action' => 'login');
    $this->Auth->allow(
            'popular',
            'newest',
            'random',
            'view',
            'category',
    );
    $this->Auth->flash['element'] = 'errors/flash_error';
    $this->Auth->authError = 'Please login or sign up to submit a link.';
}

上記の、、、で動作しpopularますnewestが、または..viewでは動作しません。randomcategory

なぜですか?

4

1 に答える 1

0

flush()default.ctpで使用していたことがわかりました。これは奇妙なセッションの問題を引き起こしていました。同様の問題に遭遇した人には、これを使用しないことをお勧めします。

于 2012-08-29T18:13:44.027 に答える