久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Laravel 5.4 中兩種不同的身份驗證模型

Two different models for authentication in laravel 5.4(Laravel 5.4 中兩種不同的身份驗證模型)
本文介紹了Laravel 5.4 中兩種不同的身份驗證模型的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

假設我有兩個不同的模型和表,分別名為 usercompany.

Suppose I have two different models and tables named user and company.

眾所周知,laravel 使用 User 模型來管理身份驗證.但因為我有兩個不同的模型,我想要可以分別管理它們.

As you know laravel uses User model to manage Authentication. but beacause I have two different model I want can manage them separately.

我正在使用 Laravel 5.4,但我不知道如何做到這一點.

I'm using laravel 5.4 and I do not know how can do that.

推薦答案

如果您在談論多重身份驗證系統,那么您必須創建多個保護來實現這一點.

If you are talking about multiple authentication system, then you have to create multiple guards to achieve that.

同一個問題有很好的答案.

There is nice answer to the same question.

誰能用例子解釋 Laravel 5.2 Multi Auth

它在 Laravel 5.2 上,但可以在 Laravel 5.4 上輕松實現.

It's on Laravel 5.2, but it can be easily implemented on Laravel 5.4.

  1. 創建一個模型 AppCompany 來擴展可驗證類.此模型將用作用戶模型,它將公司保護(在下一步中)

  1. Create a model AppCompany which extends Authenticatable Class. This model will work as user model which will company guard (in the next step)

namespace App;

use IlluminateNotificationsNotifiable;
use IlluminateFoundationAuthUser as Authenticatable;

class Company extends Authenticatable
{

    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

}

  • 為模型 AppCompany 創建守衛和提供者.

    // Authenticating guards and providers
    
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
        'company' => [
            'driver' => 'session',
            'provider' => 'company',
        ],
    ],
    
    // Providers 
    
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => AppUser::class,
        ],
        'company' => [
            'driver' => 'eloquent',
            'model' => AppCompany::class,
        ]
    ],
    

  • 現在你可以根據不同的守衛找到用戶了.

    Now you can find user according to the different guards.

    $user = Auth::guard('company')->user();
    // Or...
    $user = auth()->guard('company')->user();
    dd($user);
    

    1. 現在為公司 AppHttpControllersAuthCompanyLoginController 創建 Auth 控制器,與 AuthLoginController 相同.指定 $redirectToguard

    1. Now create Auth controller for Company AppHttpControllersAuthCompanyLoginController same as AuthLoginController. Specify $redirectTo and guard

    //AuthComapnyLoginController.php
    
    protected $redirectTo = '/comapany';
    protected $guard = 'comapany';
    
    public function showLoginForm()
    {
        if (view()->exists('auth.authenticate')) {
            return view('auth.authenticate');
        }
    
        return view('comapany.auth.login');
    }
    

    現在為用戶創建登錄表單 - company.auth.login 視圖與用戶的登錄表單相同.

    now create login form for user - company.auth.login view same as user's login form.

    1. 現在創建路由

    1. Now create routes

    //Login Routes...
    Route::group(['prefix'=>'company', 'middleware'=>'company'], function(){
        Route::get('/login','AuthCompanyLoginController@showLoginForm');
        Route::post('/login','AuthCompanyLoginController@login');
        // ...
        // rest of the company dashboard and other links
        // ...
        Route::get('/logout','AuthCompanyLoginController@logout');
    });
    

  • 為公司創建一個中間件

  • Create a middleware for company

    class RedirectIfNotCompany
    {
        /**
         * Handle an incoming request.
         *
         * @param  IlluminateHttpRequest  $request
         * @param  Closure  $next
         * @param  string|null  $guard
         * @return mixed
         */
        public function handle($request, Closure $next, $guard = 'company')
        {
            if (!Auth::guard($guard)->check()) {
                return redirect('/');
            }
    
            return $next($request);
        }
    }
    

    并將其注冊到 kernal.php

    and register it to kernal.php

    protected $routeMiddleware = [
        'company' => AppHttpMiddlewareRedirectIfNotCompany::class,
    ];
    

  • 這就是你所需要的.以警衛的名義訪問用戶

    And thats all you need. Access user by the name of guard

    Auth::guard('company')->user()
    

    這篇關于Laravel 5.4 中兩種不同的身份驗證模型的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

    【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

    相關文檔推薦

    add new element in laravel collection object(在 Laravel 集合對象中添加新元素)
    Creating an edit modal in Laravel 5(在 Laravel 5 中創建編輯模式)
    Laravel 5.5 API resources for collections (standalone data)(用于集合的 Laravel 5.5 API 資源(獨立數據))
    What is the best practice to create a custom helper function in php Laravel 5?(在 php Laravel 5 中創建自定義輔助函數的最佳實踐是什么?)
    No #39;Access-Control-Allow-Origin#39; header - Laravel(沒有“Access-Control-Allow-Origin標頭 - Laravel)
    Laravel Passport Route redirects to login page(Laravel Passport Route 重定向到登錄頁面)
    主站蜘蛛池模板: 国产日韩欧美精品一区二区三区 | 日韩成人av在线 | 欧美日韩一卡二卡 | 国产在线播放一区二区三区 | 99久久婷婷国产综合精品电影 | 精品久久久久香蕉网 | 免费在线精品视频 | 国产精品乱码一区二区三区 | 欧美激情啪啪 | 一区二区三区国产精品 | 国产日韩精品一区 | 日本高清视频在线播放 | 日韩福利| 国产美女高潮 | caoporon| 国产美女黄色 | 色婷婷亚洲国产女人的天堂 | 午夜男人天堂 | 综合网视频 | 亚洲一区综合 | 欧美成人手机视频 | 男人的天堂久久 | 五月婷婷色 | 成人免费毛片片v | 国产目拍亚洲精品99久久精品 | 中文字幕一区二区三区在线观看 | 中文字幕亚洲无线 | 天天操夜夜操 | 性欧美hd| 亚洲三区在线观看 | 久久a久久 | av先锋资源 | 欧美一区二区在线观看 | 亚洲精品久久久久久一区二区 | 一区二区三区精品视频 | 欧美视频二区 | 色就干| 一区二区三区中文字幕 | 欧美a级网站 | 自拍偷拍第1页 | 国产日韩一区二区三区 |