Laravel会话立即到期(Laravel 5.5)
我创建了自定义模型来登录用户。我正在使用sqlite作为数据库。 “用户”表有“id”列,我没有使用雄辩,所以我已经在auth.config文件中将驱动程序更改为“数据库”和表作为“用户”。Laravel会话立即到期(Laravel 5.5)
我的索引控制器检查用户是否已登录。如果没有,则重定向到登录页面。一旦提交了登录表单(ajax调用),如果用户输入了错误的用户名或密码,它会以模式告诉用户输入了错误的凭证。如果用户名和密码为真,则重定向到索引页面。但是因为用户没有被假定为登录,所以它又重定向到登录页面。此外,我试图在成功尝试(无重定向)后回显用户的ID,并且显示没有问题。但是在访问索引页后,我又被重定向到登录页面。
我试图添加会话并显示它,所以如果我调用下面的代码;
session()->put('foo', 'bar');
echo session()->get('foo');
“bar”在页面上回显。但是,如果我在另一个页面上回显会话(因为我已经添加了新会话而没有添加新会话),则“页面”未在页面上回显。
另请注意,没有文件存储在“storage/framework/sessions”文件夹中。
会话类型是文件和生存期是720.我也尝试过“cookie”和“数据库”。 “cookie”发生同样的问题,但我得到了“数据库驱动程序无法使用”与“数据库”驱动程序(我已成功迁移必要的表)的异常。
另外该网站是在本地主机上(Windows 10)。所以我不认为文件夹权限可能是一个问题。此外,我还在另一台电脑上安装了另一个Laravel(旧版本 - 它的值必须是5.4),并且工作正常。两者都使用php 7和nginx服务器。
所以我找到了我的问题。我创建了一个自定义ServiceProvider并定义了自定义路径来创建模块化系统。因为我试图在这里“包含”路由文件,所以新的laravel路由系统将它作为api路由。所以会议不可用。
现在我已经改变了我的代码:
Route::middleware('web')->group($route_file);
和航线表现为网络路由和会话工作。
希望看到这可以帮助他人解决这个问题。
检查文件config/session.php
上的会话配置。
如果您的会话驱动程序是文件,请确保您有storage/session
文件夹的权限chmod -R 777 storage
。
此外,您可以检查该文件上的lifetime
和expire_on_close
配置以保留请求之间的会话。
感谢您的回答,但我已经在我的问题中提到过这个预防措施。 –