我已创建自定义模型以登录用户。我使用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服务器。
答案 0 :(得分:2)
所以我发现了我的问题。我创建了一个自定义ServiceProvider并定义了自定义路由来创建模块化系统。因为我试图在这里“包含”路由文件,所以新的laravel路由系统将其作为api路由。因此没有会议。
现在我已将代码更改为:
Route::middleware('web')->group($route_file);
并且路由表现为Web路由和会话正在运行。
希望看到这有助于其他人解决此问题。
答案 1 :(得分:0)
检查文件config/session.php
上的会话配置。
如果您的会话驱动程序是文件,请确保您拥有storage/session
chmod -R 777 storage
文件夹的权限。
此外,您可以检查该文件上的lifetime
和expire_on_close
配置,以保留请求之间的会话。