【问题标题】:Laravel 5.3 using multiple authentication (e.g admin, customer)Laravel 5.3 使用多重身份验证(例如管理员、客户)
【发布时间】:2016-11-11 23:52:09
【问题描述】:

我在 Laravel 中阅读了很多关于多认证的帖子,我看到的大多数配置都有些复杂,我还看到了一个多认证包,但它不支持 Laravel Socialite。
我知道这个问题被问了多次,但如果有人可以给出更好的答案。将不胜感激!

我尝试过的事情

  1. 我熟悉 Laravel make:auth

  2. 我也熟悉 Laravel 社交名媛 Facebook、Twitter、Google plus。

【问题讨论】:

  • 您的意思是您的网站使用基于角色的身份验证吗?
  • 我不知道什么是基于角色的身份验证。但是我正在建立的网站是一个电子商务网站,当然还有一个管理员仪表板,显然只能由管理员访问。 @BalrajAllam
  • 看看这个github repo,可能对你有帮助。github.com/rappasoft/laravel-5-boilerplate
  • 您不一定需要多重身份验证。你可以有一个身份验证。用户角色,然后是一组路由和服务,只有使用中间件和 Gate 门面的组合的某些用户才能访问。
  • @Wistar 那么我必须改变我的数据库设计,对吧?这是我正在避免的事情,我已经阅读了建议相同的线程,例如,users 表将具有admincustomer 之间的共同属性,例如,emailpassword,admin/customer 表将具有其唯一属性和引用用户 ID 的外键。但我想简单地使用 admin 和 customer 表。

标签: php laravel laravel-5


【解决方案1】:

试试这个。但是你仍然需要一些关于 Laravel 新的多租户的基本知识。

  1. 在 config/auth.php 中添加类似这样的内容到 guards 数组:

    'customer' => [
        'driver' => 'session',
        'provider' => 'customers',
    ],
    
  2. 比在同一个文件中添加这个到providers数组:

        'customers' => [
            'driver' => 'eloquent',
            'model' => App\Customer::class,
        ],
    
  3. 比为customers DB table 创建迁移(你可以使用 Laravel 开箱即用的用户表迁移)

  4. 接下来是 Eloquent 模型 App\Customer,其中包括:

    use App\Scopes\AuthorizedScope;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    

这些应该可以让你在你的应用程序中使用 Laravel 的 Auth 外观和这些最常用的方法:

    Auth::guard('customer')->attempt()
    Auth::guard('customer')->check()
    Auth::guard('customer')->logout()
    Auth::guard('customer')->user()

或者像这样使用 auth 中间件:

    Route::get('customer/dashboard', function () {
        // Only authenticated users may enter...
    })->middleware('auth:customer');

还可以查看这些:

https://laravel.com/docs/5.3/authentication#authenticating-users

【讨论】:

  • 你认为这适用于 Laravel 社交名流吗?因为我要在我的客户身上实施 Laravel 社交名媛。
  • 无论如何,我稍后会试一试,如果它确实有效,请将其标记为答案。
  • 这取决于您的实施。如果您使用 Socialite 来检查社交联系,您可能应该使用一些额外的逻辑来将社交帐户与您的应用用户联系起来。
  • 在我的登录表单中,我会使用什么操作?
  • 也许在 auth 中间件中做一些检查和更新?
猜你喜欢
  • 2018-05-12
  • 1970-01-01
  • 2016-04-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多