laravel - Laravel Passport:请求 API 时如何验证客户端 IP
问题描述
我使用 Laravel Passport 作为我的 API 身份验证机制。一切都按预期工作,但我需要为每个请求添加额外的验证。这个想法是在发送到服务器的 access_token 旁边验证客户端 IP 地址。
知道我怎么能做到这一点吗?
更新:我想检查身份验证中使用的 IP(当用户登录时)是否与执行请求的 IP 相同。如果IP不同,客户端必须重新登录。
解决方案
我建议您使用中间件,并在该中间件中向会话信息添加一个新变量:
public function handle(Request $request)
{
$request->session()->set('initial_ip', $request->ip());
return $next(...);
}
之后,您可以在代码中的任何位置从 session 中获取该值,并将其与当前的 $request->ip() 值进行比较。
推荐阅读
- ruby-on-rails - ActiveRecord:查找列为零或空数组的位置
- javascript - 如何使用 JavaScript 从 url 中获取 JSON 数据?(JSON 新手)
- opencl - OpenCL 错误代码 -13(仅在 AMD 上)
- c++ - 导入框架包含cpp文件报错
- python - 在 python django 中,ID 没有被 %s 替换
- angular - 在以角度 4 发送到服务器之前,我可以将上传的图像保存在 assets 文件夹中吗?
- ethereum - 有没有办法从 https://ethgasstation.info/ 获取 SafeLow Gas Price 以在我的应用程序中使用?
- multithreading - 执行器服务和主线程未并行执行
- javascript - 以向导形式隐藏功能
- python - NameError:尝试单击菜单栏时未定义名称“root”