Did you check the expiration of the cookie directly after you processed this request?
This should work fine, but obviously only on the page where you submit a form that has an input field called 'remember'. On the next page, it will be set to expire_on_close again.
Ok thanks for your answer. I see what I missed. The configuration is set to the default value at each request if I understand. So I need to store the 'remember_me' choice somwhere and check it at each request to always set 'expire_on_close' to false.
My applications use two session objects: one that is high-performance (usually memcached) and short-lived, the other is stored in the DB, and long lived.
User state is stored in the short lived session, remember-me state in the long lived.
This way you benefit from the security measures that have been implemented for sessions, because unprotected 'remember-me' features are extremely dangerous: it allows you to login without knowing the password.
I know it can be dangerous. If I understand, the only way to make this functionality safe is to use HTTPS to protect against cookie stealing. If not Fuel PHP has 'match_ip' and 'match_ua' even if it is not totally