Laravel multi auth 5.4

时间:2017-10-21 16:06:42

标签: php laravel authentication laravel-5.4

我正在尝试在laravel 5.4中实现多个auth,并以这种方式完成, 我已经在auth.php中为守卫实施了守卫和提供者,

<?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() 它转储&#34;没有用户登录&#34;。谁能帮我?我需要通过

获取登录用户的ID
Auth::User()->id;

1 个答案:

答案 0 :(得分:0)

好像你需要使用发送名称来保护 Auth::guard('company')->check()上的logcheck()