【问题标题】:Authentication Recommendation认证推荐
【发布时间】:2020-06-04 05:37:45
【问题描述】:

我有一个 Laravel 网站,其中有一个存储角色 ID 的表“用户”和一个存储 自定义永久链接的表“公司”。 默认登录路径用于具有 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 并进行必要的编辑。

还有其他方法可以实现吗?推荐的方法是什么?

【问题讨论】:

  • 有一些简单的方法,我认为您需要一些示例来说明如何进行检查:)

标签: laravel authentication laravel-authentication


【解决方案1】:

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

 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

【讨论】:

    猜你喜欢
    • 2011-04-01
    • 2010-11-07
    • 2023-04-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    相关资源
    最近更新 更多