我想检测API调用是否是在我的网站之外进行的。这是由于几个因素造成的,例如:
的)
示例:
www.mywebsite.com/api/v1/customersoutside
示例2
www.mywebsite.com/api/v1/subscription/planinside
我能用中间件&头检测来完成这个任务吗?或者我必须创建一些API令牌,告诉我这是外部请求还是内部请求?
例如,使用中间件,我无法获得sec-fetch-site标头参数,因为它总是为null。
namespace App\Http\Middleware;
use Closure;
class HasAccess
{
public function handle($request, Closure $next)
{
// Always returns null
if ($request->header('sec-fetch-site') != 'same-origin')
return false;
return $next($request);
}
}发布于 2021-05-20 12:45:33
解决了问题。
将不同的角色应用于API用户,现在我可以定制我的中间件了。
class HasAccess
{
public function handle($request, Closure $next)
{
if (\Auth::user()->role == 'API')
abort(404);
return $next($request);
}
}https://stackoverflow.com/questions/67570589
复制相似问题