Zend_Auth checking if user is logged in
Asked Answered
P

3

5

I tried using:

// do login if request is posted
if (isset($_POST) && !empty($_POST)) {
    // do authencation
    ...
} else {
    // request not posted
    // see if already logged in
    if (Zend_Auth::getInstance()->hasIdentity()) {
        echo "already logged in as: " . Zend_Auth::getInstance()->getIdentity();
    }
}

Zend_Auth::getInstance()->hasIdentity() seem to be always false ... even after a login

Pieter answered 24/9, 2009 at 8:14 Comment(2)
how do you do your authentication? how do you make sure it is persisted? if you have done authentication right, hasIdentity will return true!Tutuila
i used Zend_Auth for authentication, framework.zend.com/manual/en/…, according to that $result->getIdentity() === $auth->getIdentity()Pieter
R
11

Are you ever calling Zend_Auth::getInstance()->getStorage()->write($identity)?

If you are authenticating through Zend_Auth::getInstance()->authenticate($adapter) it will write to storage for you, but if you are calling authenticate directly on the adapter, you are responsible for writing the identity to the storage.

Rogatory answered 24/9, 2009 at 8:40 Comment(0)
O
1

are you sure your identity is persisted? (ie. stored in the session or somthing similar) if not you will have to re-authenticate on each request

Origin answered 24/9, 2009 at 8:24 Comment(0)
B
1

i had the same problem, in my case the value of session.save_path on was not set on my server (phpinfo()) so i added in configs/application.ini this value:

resources.session.save_path = APPLICATION_PATH "/../data/sessions"

and on my server i create the dir /data/sessions where sessions has 777 permissions

Bradleigh answered 1/11, 2011 at 20:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.