微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何自动从Laravel中的所有设备注销所有用户?

我花了2个小时试图自动注销用户,但无论我做什么,我都不能强迫用户在24小时后注销.

成功登录后,我有一个看起来像这样的cookie

Name: remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d

Content: eyJpdiI6IkE4aFU0RCtVNkhwK3VMbGJ0ZndVUFE9PSIsInZhbHVlIjoidExYTG9tUUc5RkVQUkhjaU80a1wvdHFXcDk4eUxsaG5SRmxLVXp5c1JMdFJlYzFLZ3ZValBoQkhaY1hkKzFqcHIraDROZE5wU0s0K00wRDlMsvexMk50cUxNK2xzMzGrdmx4VW1hZ1paWVpJPSIsIm1hYyI6Ijc2NDZiYTI2MTU1NTA0YjZjMjA4ZmY1ZmU2MzdmZGFhYzdkMWU4NTRmNzEwYzIwZjRkN2E3ZDNlMDQyNWQ5N2QifQ%3D%3D

Created: Tuesday, December 12, 2017 at 6:55:00 PM
Expires: Sunday, December 11, 2022 at 6:55:00 PM

我的session.PHP文件看起来像这样

'driver' => env('SESSION_DRIVER', 'database'),
'lifetime' => 1,
'expire_on_close' => false,

我的env文件看起来像这样

broADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=database
QUEUE_DRIVER=sync

我的PHP.ini看起来像这样

session.gc_maxlifetime=14

我试图改变
‘driver’=> env(‘SESSION_DRIVER’,’数据库’),文件,cookie,redis没什么用.

为什么我不能从所有设备注销用户

解决方法:

您可以在/app/config/session.PHP文件中更改空闲会话的到期时间.

24Hrs = 1440 minutes

'lifetime' => 1440,

'expire_on_close' => false,

或者,如果上述方法不适合你,你可以这样做,

我们将手动删除会话文件夹并清除User表中的所有remember_tokens.

创建一个new command flush:session.

在命令的句柄方法中:

use App\User;
use File;

public function handle()
{
    File::cleanDirectory(storage_path().'/framework/sessions');
    User::query()->update(['remember_token' => '']);
}

然后schedule这个命令每隔午夜运行一次

$schedule->command('flush:session')->daily();

如果您想对此进行即时测试,请运行

PHP artisan flush:session

在终端和所有用户应该注销!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐