php - 在 iframe 中嵌入 Laravel 应用程序,登录时出现 302 错误
问题描述
我正在尝试Laravel app
在iframe
.
我写了一个FrameMiddleware
我在标题中允许该域的
public function handle(Request $request, Closure $next)
{
$response = $next($request);
$response->header('Content-Security-Policy', 'frame-ancestors http://localhost');
return $response;
}
并通过使用上述中间件 cors origin 错误删除。
因为我Laravel app
需要来自 iframe 的身份验证。它使用的是表单提交,而不是 API。然后它开始给出一个
419 error
. 我通过在VerifyCsrfToken
中间件$except
数组中添加登录路由来排除csrf
错误来解决。
然后我检查network
并post
登录请求给出 302 错误
我测试了身份验证方法,经过身份验证的用户对象返回Dashboard
页面重定向,然后302 error code
显示。
此外,我已经开始same_site => null
工作config/session.php
但仍然没有工作。
解决方案
正如@apokryfos所说,我需要设置cookie
tosecure
和 set SameSite=None
。
去 :config/session.php
设置:
'same_site' => 'none'
和'secure' => env('SESSION_SECURE_COOKIE', true)
或通过SESSION_SECURE_COOKIE = true
在.env
文件中设置。
并且不要忘记创建FrameMiddleware
,因为您可以关注我的问题线程和white_labeled
您要嵌入 iframe 的域,即 http://localhost。
注意:您可以使用浏览器开发工具进行验证cookies are secured or not
,SameSite=Null
如下图所示:
推荐阅读
- android - 如何在 Android Studio 中使用 Places API 在地图上显示多个位置标记
- java - 如何使用 Android Studio 从 URL 加载图像?
- typescript - 在 React Native 中使用 TypeScript 的箭头函数返回组件
- css - 使用 Wordpress 的 Illdy 主题仅在 Jumbotron 中更改 TEXT 的背景颜色
- django - 如何在 Django 模板中建立索引
- sql - 如何使用 Oracle SQL Developer 选择当月的生日?
- amazon-ec2 - AWS powershell:获取-EC2InstanceType
- python - 我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群
- json - 如何在 pyspark 数据帧上应用 group by 并对结果对象进行转换
- multithreading - 如何使用 Tokio 限制同时执行的任务?