2017-10-21 82 views
0

我想實現在laravel 5.4多權威性,並在這樣做了, 我已經執行警衛和供應商在auth.php警衛,Laravel多權威性5.4

<?php 

namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Support\Facades\Auth; 

class FleetLoginController extends Controller { 
    public function __construct() { 
     $this->middleware('guest:company'); 
    } 

    public function showLogInForm() { 
     return view('fleet.fleetLogin'); 
    } 

    public function login(Request $request) { 
     $this->validate($request, [ 
      'email' => 'required|email', 
      'password' => 'required' 

     ]); 
     if (Auth::guard('company')->attempt(['email' => $request->email, 'password' => $request->password], $request->remember)) { 
      $request->session()->regenerate(); 
      return $this->authenticated($request, $this->guard()->user()) 
       ?: redirect()->intended($this->redirectPath()); 

     } else { 
      return redirect()->back()->withInput($request->only('email', 'remember')); 
     } 
    } 

    public function logout(Request $request) { 
     $this->guard('company')->logout(); 

     $request->session()->invalidate(); 

     return redirect('/'); 
    } 

    public function logcheck() { 
     if (Auth::check()) { 
      dd('yes logged in'); 
     } 
     else 
     { 
      dd('No user logged in'); 
     } 
    } 

    protected function authenticated(Request $request, $user) { 
     $this->logcheck(); 
    } 

    protected function guard() { 
     return Auth::guard('company'); 
    } 
} 

我有提供者和守衛,問題是當我調用函數logcheck() 它轉儲「沒有用戶登錄」。誰能幫我?我需要

Auth::User()->id; 
+0

不知道守護 Auth::guard('company')->check(),如果你想用同樣的方法,但是這是一個後我做了關於不同的用戶角色和中間件:https://stackoverflow.com/questions/46501968/auth-and-user-management-in-laravel-rest-api/46503658#46503658可能是有用的。 –

+0

我正在使用兩個表格。另一個基本上是一個公司 –

回答

0

獲得的登錄用戶的ID好像你需要使用發送姓名到logcheck()

+0

非常感謝你!這解決了它! –

+0

現在我該如何使用它作爲中間件? –

+1

只需在'config/auth.php'中創建'公司'默認警衛或將其添加到'app/Http/Middlewares/RedirectIfAuthenticated.php'中即可。 – astratyandmitry