php Laravel memcached -其他用户自动注销

gk7wooem  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(127)

我只是在.env文件中更改了这两个设置
.env文件

CACHE_DRIVER=memcached
SESSION_DRIVER=memcached

之后我清除了配置和缓存

php artisan config:clear
php artisan cache:clear

我有两个注册用户登录。用户1登录非私人,用户2在私人窗口。当我注销与用户1,然后用户2也自动注销。
但如果我将会话和缓存驱动程序更改为“文件”,则可以正常工作。
config/session.php

'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'store' => env('SESSION_STORE', null),
'lottery' => [2, 100],
'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE', true),
'http_only' => true,
'same_site' => 'none',

config/cache.php

'stores' => [
        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache/data'),
        ],

        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],
    ],
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),

我们在生产服务器和不同的设备上进行了尝试,发生了相同的情况。
为什么会这样呢?提前感谢您的回复。

bpsygsoo

bpsygsoo1#

解决方案

下面是我的注销功能:

/**
 * Logout
 * @return RedirectResponse
 */
public function logout(): RedirectResponse {
   Cache::flush();
   Auth::logout();
   return redirect(self::LOGIN_URL);
}

我每次注销时都会清除缓存,所以,这就是“bug”。

相关问题