【发布时间】:2018-11-01 06:58:27
【问题描述】:
我想在 X-Frame-Options 中添加多个域,因为我必须授权 facebook 和 messenger。
我尝试了很多东西,例如...
我创建了一个中间件:
<?php
namespace App\Http\Middleware;
use Closure;
class FrameHeadersMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('X-Frame-Options', 'ALLOW FROM https://www.messenger.com/');
$response->header('X-Frame-Options', 'ALLOW FROM https://www.facebook.com/');
return $response;
}
}
但是只添加了facebook...
编辑:我使用 http 引用:
<?php
namespace App\Http\Middleware;
use Closure;
use Request;
class FrameHeadersMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request);
if(Request::server('HTTP_REFERER') === 'www.messenger.com'){
$response->header('X-Frame-Options', 'ALLOW FROM https://www.messenger.com/');
}
if(Request::server('HTTP_REFERER') === 'www.facebook.com'){
$response->header('X-Frame-Options', 'ALLOW FROM https://www.facebook.com/');
}
return $response;
}
}
【问题讨论】:
-
这是不可能的。您不能多次指定标头,并且它只允许一个 URI。首先,您需要专门为构建您的内容的任何域输出它。
-
Facebook 会在 iframe 中加载您的页面吗?
-
@apokryfos 我在这里读到了这个developers.facebook.com/docs/messenger-platform/webview/…
-
我想使用 webview,它可以工作,但是在桌面上,我没有“模态”,新标签中有一个重定向,我想要一个模态(拥有一个iFrame) @apokryfos
-
@CBroe 你有文档吗?我读了这个developers.facebook.com/docs/messenger-platform/webview/…
标签: php laravel-5 http-headers