身份验证建议

时间:2020-02-19 23:16:32

标签: laravel authentication laravel-authentication

我有一个 Laravel 网站,该网站的表'users'存储了role_id,表'companies'存储了自定义永久链接默认登录路径用于具有ADMIN角色的用户。我需要为具有CLIENT角色的用户添加其他视图和路由。 因此,当用户访问URL '/ custom-company-permalink-from-db'且未登录时,应将其重定向到URL '/ custom-company- permalink-from-db / login'

这是我的路线:

Route::middleware('web')->group(function() {
    Auth::routes(['register' => false]);

    Route::get('/', ['uses' => 'HomeController@index', 'as' => 'home']);
    Route::get('/{company}', ['uses' => 'HomeController@overview', 'as' => 'overview']);
});

Route::namespace('Admin')->prefix('admin')->name('admin.')->middleware(['auth', 'check.if.admin'])->group(function() {
    Route::get('/dashboard', ['as' => 'dashboard', 'uses' => 'AdminController@dashboard']);
});

我正在考虑将其添加到路线:

Route::get('/{company?}/login','Frontend\Auth\LoginController@showLoginForm')->name('client.login');

然后将 app / Http / Controllers / Auth 文件复制到 app / Http / Controllers / Frontend / Auth < / strong>,然后进行必要的修改。

还有另一种方法可以实现这一目标吗?推荐的方法是什么?

1 个答案:

答案 0 :(得分:0)

由于要根据角色分开用户,因此可以使用相同的登录名并根据名称空间区分路由。在auth组中,创建两个组,一个用于admin(现有),另一个用于客户端。您已经在使用中间件来检查用户是否为admin。同样,您可以创建一个新的中间件来检查用户是否是客户端。

 Route::middleware('auth')->group....
    Route::namspace..prefix..->middleware('check.if.admin')->group(...
    ) //end check if admin group
    Route::namespace('client')->prefix('client')->middleware('check.client')->group(...)
 )//end auth group