0
我正在尋找一種方式來保護接入線路的用戶不屬於他們,例如管理員不能訪問用戶區和簡單的用戶無法訪問管理區
嗨,我有一個laravel 5.3應用程序,它有兩種類型的用戶
- 聯繫
- 簡單的用戶 的
我正在試圖防止admin
訪問simple user
路線,反之亦然,我搜索了一番,發現創建一箇中間件
我所做的事情的一個解決方案
<?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('/');
}
}
不幸的是,兩個人都能夠訪問彼此的禁區。我無法找到更好的方法來保護用戶訪問他們無法訪問的路由。