首页 > 解决方案 > Laravel Passport:请求 API 时如何验证客户端 IP

问题描述

我使用 Laravel Passport 作为我的 API 身份验证机制。一切都按预期工作,但我需要为每个请求添加额外的验证。这个想法是在发送到服务器的 access_token 旁边验证客户端 IP 地址。

知道我怎么能做到这一点吗?

更新:我想检查身份验证中使用的 IP(当用户登录时)是否与执行请求的 IP 相同。如果IP不同,客户端必须重新登录。

标签: laravelip-addresslaravel-passportlaravel-5.7

解决方案


我建议您使用中间件,并在该中间件中向会话信息添加一个新变量:

public function handle(Request $request)
{
  $request->session()->set('initial_ip', $request->ip());

  return $next(...);
}

之后,您可以在代码中的任何位置从 session 中获取该值,并将其与当前的 $request->ip() 值进行比较。


推荐阅读