iceangel89
iceangel89

Reputation: 6273

Zend_Auth checking if user is logged in

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

Upvotes: 5

Views: 8577

Answers (3)

Ehecatl
Ehecatl

Reputation: 122

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

Upvotes: 1

gnarf
gnarf

Reputation: 106332

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.

Upvotes: 11

NDM
NDM

Reputation: 6830

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

Upvotes: 1

Related Questions