【发布时间】:2018-03-29 11:53:05
【问题描述】:
我已经创建了我的自定义模型来登录用户。我正在使用 sqlite 作为数据库。 “users”表有“id”列,我没有使用 eloquent,所以我在 auth.config 文件中将驱动程序更改为“database”,将表更改为“users”。
我的索引控制器检查用户是否登录。如果没有,重定向到登录页面。一旦提交登录表单(ajax 调用),如果用户输入错误的用户名或密码,它会在模式中收到错误消息,告诉它输入了错误的凭据。如果用户名和密码为真,则重定向到索引页面。但是因为没有假定用户已登录,所以它再次重定向到登录页面。此外,我尝试在成功尝试(不重定向)后回显用户的 id,并且显示没有问题。但是在访问索引页面后,我又被重定向到登录页面。
我已经尝试添加会话并显示它,所以如果我调用以下代码;
session()->put('foo', 'bar');
echo session()->get('foo');
“bar”在页面上回显。但是,如果我在另一个页面上回显会话(因为我已经添加了新会话而没有放置新会话),则不会在页面上回显“栏”。
另请注意,“storage/framework/sessions”文件夹中没有存储任何文件。
会话类型是文件,生命周期是 720。我也尝试过“cookie”和“数据库”。 “cookie”也出现了同样的问题,但“数据库”驱动程序出现“无法使用数据库驱动程序”异常(我已成功迁移必要的表)。
该网站也位于 localhost (Windows 10) 上。所以我认为文件夹权限不是问题。此外,我在同一台电脑上还有另一个 Laravel(旧版本 - 我认为它必须是 5.4),它可以正常工作。两者都使用 php 7 和 nginx 服务器。
【问题讨论】:
-
附带说明 - 如果您忘记在登录刀片的表单中输入
@csrf,也会发生 419“您的会话已过期”:)
标签: php laravel session authentication logging