gbirke / rememberme

A PHP library that implements secure "Remember me" cookies
MIT License
125 stars 30 forks source link

Memory exhausted when initializing file storage #24

Open CasperAlant opened 6 years ago

CasperAlant commented 6 years ago

Hello, I'm getting memory exhausted errors with this library in production. I've tried increasing the allowed memory usage, but 400MB is more than I am comfortable with.

PHP Fatal error:  Allowed memory size of 419430400 bytes exhausted (tried to allocate 33554432 bytes) in .../user.php on line 142
PHP Fatal error:  Allowed memory size of 419430400 bytes exhausted (tried to allocate 33554432 bytes) in .../user.php on line 141
PHP Fatal error:  Allowed memory size of 419430400 bytes exhausted (tried to allocate 33554432 bytes) in .../vendor/birke/rememberme/src/Authenticator.php on line 75

The respective lines in .../user.php are:

135. $storagePath = settings::user_tokens_path;
136. if(!is_writable($storagePath) || !is_dir($storagePath)) {
137. die("'$storagePath' does not exist or is not writable by the web server.
138.        To run the example, please create the directory and give it the
139.         correct permissions.");
140. }
141. $storage = new FileStorage($storagePath);
142. $rememberMe = new Authenticator($storage);

Any help would be appreciated.

P.S. Thanks for this awesome library.

CasperAlant commented 6 years ago

I switched to the PDO Storage which fixed it for me. So obviously the problem is with the FileStorage. Also, it seemed to only affect certain users.