Как создать простую защиту авторизации в Laravel 5.7?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
811
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Промежуточное ПО

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

Это работает. Мне также пришлось зарегистрировать это промежуточное ПО в app / Http / Kernel.php, добавив его в массив $ routeMiddleware.

Derrick Miller 07.11.2018 13:38

Другие вопросы по теме