gpt4 book ai didi

php - Laravel Redis session 驱动程序不起作用

转载 作者:IT王子 更新时间:2023-10-29 05:57:19 25 4
gpt4 key购买 nike

我在使用 laravel 4“redis” session 驱动程序时遇到困难。问题是什么都没有实际存储。

我检查过的东西:

  • 我已经在 session 配置文件和缓存配置文件中将驱动程序设置为 redis
  • 在 database-config 文件中指定了 redis 的数据库配置:
  • 我尝试使用 redis 类手动存储一些东西,这确实有效,但使用 session 类存储无效

    // this is in my session config
    'driver' => 'redis',

    //this is my db-config
    'redis' => array(

    'cluster' => true,

    'default' => array(
    'host' => '127.0.0.1',
    'port' => 6379,
    'database' => 0,
    ),

    ),


    //this works
    $redis = Redis::connection();
    $redis->set('name', 'Taylor');

    //this doesn't work
    Session::put('name', 'Taylor');

当我将 session 更改为 native 时,它起作用了

任何帮助将不胜感激

更新
那很有意思:当我按照@philo 的建议使用 redis-cli monitor 时,我在尝试登录我的 L4 应用程序时得到了一些输出:

`1387191809.513730 [0 127.0.0.1:59268] "SELECT" "0"
1387191809.513835 [0 127.0.0.1:59268] "GET" "laravel:siau639prmckja34le11vbsfl7"
1387191809.863851 [0 127.0.0.1:59268] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:226:\"_sf2_attributes|a:2:{s:6:\"_token\";s:40:\"9LPf354C2ZNtw0Oc1zyafSvMdFFlspPiJsq8w90v\";s:5:\"flash\";a:2:{s:3:\"old\";a:0:{}s:3:\"new\";a:0:{}}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:\"u\";i:1387191809;s:1:\"c\";i:1387191809;s:1:\"l\";s:1:\"0\";}\";"
1387191809.866655 [0 127.0.0.1:59268] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0"
1387191828.464840 [0 127.0.0.1:59279] "SELECT" "0"
1387191828.464970 [0 127.0.0.1:59279] "GET" "laravel:siau639prmckja34le11vbsfl7"
1387191828.581774 [0 127.0.0.1:59279] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:599:\"_sf2_attributes|a:4:{s:6:\"_token\";s:40:\"KSkc5OAsp9Psz3MC7dYo6FfkTvcdK6I6HcisSyJ3\";s:10:\"_old_input\";a:3:{s:6:\"_token\";s:40:\"9LPf354C2ZNtw0Oc1zyafSvMdFFlspPiJsq8w90v\";s:8:\"username\";s:10:\"bertcasier\";s:8:\"password\";s:4:\"test\";}s:5:\"flash\";a:2:{s:3:\"new\";a:0:{}s:3:\"old\";a:2:{i:0;s:10:\"_old_input\";i:1;s:6:\"errors\";}}s:6:\"errors\";O:29:\"Illuminate\\Support\\MessageBag\":2:{s:11:\"\x00*\x00messages\";a:1:{s:7:\"general\";a:1:{i:0;s:48:\"Ongeldige gebruikersnaam/wachtwoordcombinatie...\";}}s:9:\"\x00*\x00format\";s:8:\":message\";}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:\"u\";i:1387191828;s:1:\"c\";i:1387191828;s:1:\"l\";s:1:\"0\";}\";"
1387191828.582214 [0 127.0.0.1:59279] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0"
1387191828.613536 [0 127.0.0.1:59284] "SELECT" "0"
1387191828.613649 [0 127.0.0.1:59284] "GET" "laravel:siau639prmckja34le11vbsfl7"
1387191828.653734 [0 127.0.0.1:59284] "SET" "laravel:siau639prmckja34le11vbsfl7" "s:226:\"_sf2_attributes|a:2:{s:6:\"_token\";s:40:\"SMxXljPLDaViVVSpCohfOKlpByhjp8E2ywS6zVkh\";s:5:\"flash\";a:2:{s:3:\"old\";a:0:{}s:3:\"new\";a:0:{}}}_sf2_flashes|a:0:{}_sf2_meta|a:3:{s:1:\"u\";i:1387191828;s:1:\"c\";i:1387191828;s:1:\"l\";s:1:\"0\";}\";"
1387191828.654102 [0 127.0.0.1:59284] "EXPIRE" "laravel:siau639prmckja34le11vbsfl7" "0"
1387191878.208814 [0 127.0.0.1:59358] "config" "get" "databases"
1387191878.215094 [0 127.0.0.1:59358] "INFO" "keyspace"
1387191880.176125 [0 127.0.0.1:59358] "select" "0"
1387191880.176314 [0 127.0.0.1:59358] "keys" "*"`

我的 session 好像马上就过期了?我写了一个自定义的 Auth User Provider,它让我在 rest-API 中登录,并将结果存储在 session 中。但是当我使用 redis session 驱动程序时,我会立即被重定向回登录页面。当我使用 RDM(redis 客户端 GUI)时,我找不到任何 session 变量

最佳答案

感谢@philo 的提示,我找到了解决方案。

我的配置文件中的 session 生命周期被设置为,因为我希望我的 session 在浏览器关闭时过期。这适用于 native session ,但对于 Redis session ,它会导致 session 立即过期。当我更改生命周期时,我的 session 会按预期工作。

现在我还在搜索如何在浏览器关闭时过期

关于php - Laravel Redis session 驱动程序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com