0

我正在尝试使用 Laravel 5.7 实现一个非常简单的身份验证机制,但不确定最好的方法。

为了将我的问题简化为最简单的术语,假设我想保护某些路由,以便它们只能被来自特定 IP 地址的用户查看。如果来自不同 IP 地址的用户尝试访问受保护的路由,他们将被重定向到外部 URL。

基本上,我想这样做:

if ($_SERVER['REMOTE_ADDR'] != '123.45.67.89') {
    return Redirect::away('https://external-url.example.com/login');
}

在 Laravel 中实现这一点的最干净的方法是什么?我已经阅读了很多解释如何创建自定义身份验证提供程序的教程,但对于我正在做的事情来说,它们似乎过于复杂。

我可以简单地创建一个实现上述代码的中间件类吗?我可以通过 Google 搜索哪些术语,以找到可以帮助我实现此功能的教程?

4

1 回答 1

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);
    }
}
于 2018-11-07T01:16:00.700 回答