在我的Laravel 5.3设置中,我使用Bouner包,我定义了两个角色,admin
和顾客
。登录后,客户将被重定向到/home
,如在App\Http\Controller\Auth\LoginController.php下的protected$reDirectTo='/home';
中指定的。现在,如果具有admin
角色的用户登录,他也会被重定向到/home
,因为$reDirectTo
不会对用户角色进行任何区分。我在这里的目标是将管理员用户重定向到/admin/home
。
处理此问题的最佳解决方案是什么?这是我的尝试。
在web.php
路由中,在任何中间件组之外:
Route::get('/home', function(Illuminate\Http\Request $request) { // http://myapp.dev/home
if (Auth::user()->isA('customer')) // -> goto HomeController@index
return app()->make('\App\Http\Controllers\HomeController')->index($request);
else if (Auth::user()->isAn('admin')) // -> redirect
return redirect('/admin/home');
else
abort(403);
})->middleware('auth');
Route::group(['prefix' => 'admin','middleware' => 'auth'], function () {
Route::get('/home', 'Admin\HomeController@index');
});
或者,这也可以在中间件中完成:
Route::get('/home', 'HomeController@index')->middleware('auth', 'role');
// in VerifyRole.php middleware...
public function handle($request, Closure $next, $guard = null)
{
if (Auth::user()->isAn('admin')) {
return redirect('/admin/home');
}
return $next($request);
}
这可以工作,但如果添加更多角色,则无法伸缩。我相信一定有一种优雅的内置方式来实现这一点。所以问题是,我如何根据用户的角色将他们路由到他们适当的仪表板(即home
)?
在Laravel 5.3中,您可以重写AuthController.php
中的sendLoginSolutions()
方法,以便能够在登录后将用户重定向到不同的路由。
您可以在类App\Http\Controller\Auth\LoginController
中将验证()
方法重写为:
protected function authenticated(Request $request, $user)
{
if ($user->isA('customer'))
return redirect('/home');
else if ($user->isAn('admin'))
return redirect('/admin/home');
}
或
可以将reDirectPath()
方法重写为:
public function redirectPath()
{
if (auth()->user()->isA('customer'))
return '/home';
else if (auth()->user()->isAn('admin'))
return '/admin/home';
}
我有一个小难题来解决这个问题。 我有一个用户和一个管理员角色。 用户应该能够列出除管理员以外的所有用户。管理员可以列出所有用户。 我想到的第一个解决方案是检查控制器级别的角色: 但是我更想做的是在路线层面上,保持控制器更干净,但不知何故它确实起作用了。它只列出用户,即使我作为管理员登录。 有什么建议吗?谢谢!
我希望使用相同的路由路径,根据用户角色为我的用户加载稍微不同的视图。 以前,我已经加载了基于当前域的不同路由: 这种方法只依赖于子域,子域在创建时可用,因此所有内容都可以是同步的。我必须对用户进行身份验证,根据其角色加载正确的路由,然后导出路由器以初始化vue应用程序。 理想情况下,我可以加载基于用户角色的,,,其中可以包含角色的所有路由定义。 我正在使用Feathers-vuex,但我似乎不能等
本文展示了如何根据不同的用户角色,在登录之后来重定向到不同的页面。 在 method-security项目的基础上,我们构建了一个role-base-login项目。 build.gradle 修改 build.gradle 文件,让我们的role-base-login项目成为一个新的项目。 修改内容也比较简单,修改项目名称及版本即可。 jar { baseName = 'role-bas
我在身份管理方面有一个项目,我希望有人能给我指出正确的方向。这是基于角色的配置,基本上我需要知道如何根据某些用户属性(例如职位、部门)配置特定的应用程序,然后自动为该应用程序提出配置请求。该应用程序是一个断开连接的应用程序,将手动配置。 我们试图实现的是,一旦在 OIM 中创建了用户,并且如果他或她满足这些条件,OIM 将生成对应用程序的请求,以便为它们预配它们。有没有办法在 OIM 中实现此目的
我对Spring靴还不熟悉。我需要在spring boot中实现基于角色的授权。我有不同的角色,多个用户将映射到每个角色。每当调用api时,我都会设置不同的访问权限(读取、添加、删除、编辑),需要检查访问权限并允许权限。我计划使用拦截器调用具有查询的方法,以从DB获取访问权限,并拒绝或访问api。有没有其他更好的方法我可以用同样的方法?
问题内容: 我正在寻找有关其他人如何设计此方法的意见。我将提供基于类(Django组)的视图。 例如,用户组将确定他或她将有权访问哪些视图/模板。我正在考虑也许在表中存储用于查看功能的路径,以确定用户的链接栏将由什么组成。过滤器规范也可以存储,以确定哪些行将填充这些模板。 医院护理单位就是一个很好的例子。一个单位的护士不必看整个医院的病人。他们只需要去看病人。同一部门的医生也只需要看望那些患者,但