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