简体   繁体   中英

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

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.

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM