路由不基于角色
Routing not based on roles
Laravel 5.5问题。
假设用户已经通过身份验证并具有正确的访问角色,但是您希望他们在访问任何其他路由之前在特定页面上执行操作。
如何防止他们在特定页面上执行特定操作之前访问其他路由?
因为在地址栏中输入其他路由会绕过需要操作的页面。
例子
登录后你有3条路线
1./a1
2. /a2
3. /a3
如果用户没有在某些路线/账单上执行操作,他们不应该看到 1、2、3。但是我注意到如果用户已经知道 1-3 并且他们在地址栏中输入它会将他们带到那里.
这是我上面评论的一个基本示例。您需要相应地调整以满足您的需求,因为我的与游戏项目相关:
中间件:
public function handle($request, Closure $next)
{
$user = Auth::user();
if ($user->game_path == 0)
{
Session::flash('error', 'Your player path must be selected before continuing.');
return redirect('/');
}
return $next($request);
}
内核:
'path' => \App\Http\Middleware\CheckPath::class,
路线:
Route::group(['middleware' => ['path']], function () {
Route::get('/online', 'VariousController@online')->name('online');
});
基本上,如果玩家试图查看 /online 但他们的路径 == 0,它会将他们重定向回他们想要的页面 choose/update。
Laravel 5.5问题。
假设用户已经通过身份验证并具有正确的访问角色,但是您希望他们在访问任何其他路由之前在特定页面上执行操作。
如何防止他们在特定页面上执行特定操作之前访问其他路由?
因为在地址栏中输入其他路由会绕过需要操作的页面。
例子 登录后你有3条路线 1./a1 2. /a2 3. /a3
如果用户没有在某些路线/账单上执行操作,他们不应该看到 1、2、3。但是我注意到如果用户已经知道 1-3 并且他们在地址栏中输入它会将他们带到那里.
这是我上面评论的一个基本示例。您需要相应地调整以满足您的需求,因为我的与游戏项目相关:
中间件:
public function handle($request, Closure $next)
{
$user = Auth::user();
if ($user->game_path == 0)
{
Session::flash('error', 'Your player path must be selected before continuing.');
return redirect('/');
}
return $next($request);
}
内核:
'path' => \App\Http\Middleware\CheckPath::class,
路线:
Route::group(['middleware' => ['path']], function () {
Route::get('/online', 'VariousController@online')->name('online');
});
基本上,如果玩家试图查看 /online 但他们的路径 == 0,它会将他们重定向回他们想要的页面 choose/update。