php - 在 Iframe 中嵌入 Laravel 应用程序,登录时出现 302 错误

标签 php laravel authentication iframe csrf-token

我正在尝试在 iframe 中的其他域中使用 Laravel 应用程序

我写了一个 FrameMiddleware,在其中我允许在 header 中使用该域

 public function handle(Request $request, Closure $next)
    {
        $response = $next($request);
        $response->header('Content-Security-Policy', 'frame-ancestors http://localhost');
        return $response;
    }

并通过使用上述中间件 cors 消除了原始错误。

因为我的 Laravel 应用程序 需要来自 iframe 的身份验证。它使用的是表单提交,而不是 API。然后它开始给出一个
419 错误。我通过在 VerifyCsrfToken 中间件 $except 数组中添加一个登录路由来解决 csrf 错误。

然后我检查 networkpost 登录请求给出 302 错误

laravel within iframe give 302 error for post request

我测试了身份验证方法,经过身份验证的用户对象通过 Dashboard 页面重定向返回,然后显示 302 错误代码

此外,我在 config/session.php 中设置了 same_site => null 但仍然无法正常工作。

最佳答案

作为@apokryfos说,我需要将 cookie 设置为 secure 并设置 SameSite=None

转到:config/session.php

设置: 'same_site' => 'none''secure' => env('SESSION_SECURE_COOKIE', true) OR 通过设置 SESSION_SECURE_COOKIE = true.env 文件中。

不要忘记尽可能地创建FrameMiddleware follow-my-question-threadwhite_labeled 域,即您嵌入 iframe 的 http://localhost。

注意:您可以验证 cookie 是否安全 以及 SameSite=Null 使用浏览器开发工具,如下图所示:

cookies secured and SameSite=Null Verification

关于php - 在 Iframe 中嵌入 Laravel 应用程序,登录时出现 302 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69374643/

相关文章:

javascript - PHP/Javascript 中实时更新时间

php - 为什么使用 mPDF 合并 PDF 文件后超链接丢失?

php - 我的 Laravel 5.2.10 session 不会持续

php - 用户配置文件显示依赖于 php 所有者的信息

python - 如何以编程方式(python)使用操作系统用户验证用户名/密码

javascript - 如何从 Laravel 5 中的 AJAX 调用返回 View ?

php - Magento 中 CMS 页面的自定义字段

php - laravel 只显示分页中的下一个和上一个链接

php - Laravel Symfony/控制台,由于 "Invalid argument"安装失败?

android - 基于登录的不同内容