Laravel会议立即到期(Laravel 5.5)

时间:2017-10-17 17:42:22

标签: php laravel session authentication logging

我已创建自定义模型以登录用户。我使用sqlite作为数据库。 "用户"表有" id"专栏,我没有使用雄辩,所以我把驱动程序更改为"数据库"和表格#34;用户"在auth.config文件中。

我的索引控制器会检查用户是否已登录。如果没有,请重定向到登录页面。提交登录表单(ajax调用)后,如果用户输入错误的用户名或密码,则会在模式中收到错误消息,告知其输入了错误的凭据。如果用户名和密码为true,则会重定向到索引页面。但由于不假定用户已登录,因此它再次重定向到登录页面。此外,我尝试在成功尝试后回显用户的id(没有重定向),并且显示没有问题。但在访问索引页面后,我再次被重定向到登录页面。

我尝试添加会话并显示它,以便我调用以下代码;

session()->put('foo', 'bar');
echo session()->get('foo');

"杆"在页面上回显。但是如果我在另一个页面上回显会话(因为我已经添加了会话而没有新的会话)," bar"没有在页面上回显。

另请注意,没有文件存储在" storage / framework / sessions"文件夹中。

会话类型是文件,生命周期是720.我也试过" cookie"和"数据库"。同样的问题发生在" cookie"但我得到了#34;数据库驱动程序无法使用" "数据库"驱动程序(我已成功迁移了必要的表)。

此外,该网站位于localhost(Windows 10)上。所以我不认为文件夹权限可能是个问题。另外我在同一台电脑上有另一台Laravel(旧版本 - 我认为必须是5.4)并且它可以正常工作。两者都使用php 7和nginx服务器。

2 个答案:

答案 0 :(得分:2)

所以我发现了我的问题。我创建了一个自定义ServiceProvider并定义了自定义路由来创建模块化系统。因为我试图在这里“包含”路由文件,所以新的laravel路由系统将其作为api路由。因此没有会​​议。

现在我已将代码更改为:

Route::middleware('web')->group($route_file);

并且路由表现为Web路由和会话正在运行。

希望看到这有助于其他人解决此问题。

答案 1 :(得分:0)

检查文件config/session.php上的会话配置。

如果您的会话驱动程序是文件,请确保您拥有storage/session chmod -R 777 storage文件夹的权限。

此外,您可以检查该文件上的lifetimeexpire_on_close配置,以保留请求之间的会话。