Как создать простой auth guard в Laravel 5.7? - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь реализовать очень простой механизм аутентификации с помощью 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, чтобы найти учебники, которые помогут мне в этом?

1 Ответ

0 голосов
/ 07 ноября 2018

Промежуточное программное обеспечение

<?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);
    }
}
...