問題Laravel 5.3保護ルートが異なる役割を持っている
私は彼らに属していないアクセスルートからユーザーを保護するための方法、例えば、管理者はユーザ領域とシンプルなユーザーにアクセスすることはできません探していアクセスできない管理エリア
こんにちは、私はlaravel 5.3アプリをしましたし、それがユーザー
- 管理
- シンプルなユーザー の2種類があります
私は、私は多くのことを検索しsimple user
ルートとその逆へのアクセスadmin
を防ぐためにしようと、私が何をやったかのミドルウェア
を作成するための1つの解決策を見つけたんだ
<?php
namespace App\Http\Middleware;
use Auth;
use Closure;
class UserRole
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::check()) // user logged
{
$request_url = $request->getRequestUri();
if(Auth::user()->user_type == 1) // simple user
{
// checking if simple user is visiting routes // starts with /user in the url
if (strpos($request_url, "/user") === 0)
{
return $next($request);
}
else
{
return redirect('/');
}
}
// checking if admin is visiting routes // starts with /admin in the url
else if(Auth::user()->user_type == 2) // admin
{
if (strpos($request_url, "/admin") === 0)
{
return $next($request);
}
else
{
return redirect('/');
}
}
else
{
return redirect('/');
}
}
return redirect('/');
}
}
残念なことに、両者は互いに制限されたエリアにアクセスすることができます。私は、ユーザーがアクセス権を持たない経路にアクセスするのを防ぐより良い方法を見つけることができません。