gpt4 book ai didi

php - Laravel session 立即过期 (Laravel 5.5)

转载 作者:行者123 更新时间:2023-12-04 15:52:27 24 4
gpt4 key购买 nike

我已经创建了自定义模型来登录用户。我使用 sqlite 作为数据库。 “users”表有“id”列,我没有使用 eloquent,所以我在 auth.config 文件中将驱动程序更改为“database”,将表更改为“users”。

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

我尝试添加 session 并显示它,因此如果我调用以下代码;

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

“bar”在页面上回显。但是,如果我在另一个页面上回显 session (没有放置新 session ,因为我已经添加了),则“bar”不会在页面上回显。

另请注意,“storage/framework/sessions”文件夹中没有存储任何文件。

session 类型是文件,生存期是720。我也尝试过“cookie”和“数据库”。 “cookie”也出现了同样的问题,但我在“database”驱动程序中遇到了“无法使用数据库驱动程序”异常(我已成功迁移了必要的表)。

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

最佳答案

所以我发现了我的问题。我创建了一个自定义 ServiceProvider 并定义了自定义路由来创建模块化系统。因为我尝试在这里“包含”路由文件,所以新的 Laravel 路由系统将其充当 api 路由。因此 session 不可用。

现在我已将代码更改为:

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

并且路由的行为与网络路由一样,并且 session 正在工作。

希望看到这可以帮助其他遇到此问题的人。

关于php - Laravel session 立即过期 (Laravel 5.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46796074/

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