Laravel 5.7 Auth::loginUsingId() 在生成 CSRF token 后不起作用

标签 laravel laravel-5 csrf-protection laravel-5.7

我正在尝试在注册步骤的第 2 步自动登录用户。成功插入数据库后,我使用 Auth::loginUsingId($user_id) 来使用 ajax 自动登录用户。 我总是在每个步骤中提交 CSRF token 。

现在的问题是在成功登录 CSRF token 生成后,Auth::user() 在第 3 步变为空白

登录前后的CSRF也是不同的。

最佳答案

首先,使用非 GET 请求时需要 csrf token ,因此如果在您的情况下使用 GET 请求似乎合理,您可以使用它。

否则,在第 2 步中,您应该返回新的 CSRF token ,如下所示:

Auth::loginUsingId($user_id);

return response()->json(['csrf_token' => csrf_token()];

然后在第 3 步中使用您从第 2 步响应中获得的新 token 。

关于Laravel 5.7 Auth::loginUsingId() 在生成 CSRF token 后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745839/

相关文章:

ColdFusion CSRF XSS 攻击预防

php - 如何将数组推送到 Laravel 中的现有 session

reactjs - 错误 : Request failed with status code 405

laravel - Eloquent (Laravel 5) - 如何在关系查询 (whereHas) 中包含 SoftDeleted 记录?

laravel-5 - 您的系统上没有安装合适的 CSPRNG

service-worker - Service Worker 后台同步与 CSRF 保护的最佳实践模式

php - 如何为数据库插入传递对象?

javascript - sweetalert 用于 Laravel 应用程序中的删除警报

php - Laravel ownsToMany 插入查询中的表顺序

laravel - 在laravel 5中上传超过2M的文件