我正在尝试使用Laravel 5.7实现一种非常简单的身份验证机制,并且不确定采用哪种最佳方法。
为使问题尽可能简化,我想保护某些路由,以便只有特定IP地址的用户才能看到它们。如果来自其他IP地址的用户尝试访问受保护的路由,则会将他们重定向到外部URL。
基本上,我想这样做:
if ($_SERVER['REMOTE_ADDR'] != '123.45.67.89') {
return Redirect::away('https://external-url.example.com/login');
}
在Laravel中最干净的方法是什么?我已经阅读了很多教程,这些教程解释了如何创建自定义Auth提供程序,但是对于我正在做的事情,它们似乎过于复杂。
我可以简单地创建一个实现上述代码的中间件类吗?我可以通过Google搜索哪些术语,以找到可以帮助我实现这些目标的教程?
答案 0 :(得分:2)
中间件
<?php
namespace App\Http\Middleware;
use Closure;
class VerifyIpAddress
{
/**
* Check request ip address and ..
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->ip() !== 123.123.123.123) {
// forbidden page or smth!
}
return $next($request);
}
}