我一直在努力創建第二個身份驗證以及 Laravel 中的開箱即用身份驗證。我使用了make:auth來自的命令artisan并將我的自定義模型用作提供者,還為我的自定義模型創建了一個防護。我的問題是用戶在成功登錄后沒有通過身份驗證。換句話說,當我嘗試使用以下命令檢索用戶時:Auth::user()或者Auth::guard('employee')->user()它只是給了我 null 并且我不明白為什么會這樣。問題是我得到了正確的重定向,但我不知道它是會話還是其他任何不起作用的東西?如果我錯了,請糾正我
編輯:
我的員工模型:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Angestellter extends Authenticatable
{
use HasFactory;
public $timestamps = false;
protected $table = 'angestellter';
/**
* The attributes that are mass assignable.
*
* @var string[]
*/
protected $fillable = [
'friseurkuerzel',
'vorname',
'nachname',
'email',
'password',
'ist_admin',
'erstelldatum',
'friseursalon_id',
];
}
我來自 /config/auth.php 的警衛配置
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'employee' => [
'driver' => 'session',
'provider' => 'employees',
]
],
我登錄用戶的 AdminLoginController:
$this->validate($request, $rules);
$remember = $request->get('remember');
if (Auth::guard('employee')->attempt([
'email' => $request->get('email'),
'password' => $request->get('password'),
], $remember)) {
//Authentication passed...
Auth::guard('employee')->login(Auth::guard('employee')->user());
return redirect()->to(route('admin.home'))->send();
}
該attempt()方法成功后,我可以向dd()我的 Auth 用戶使用:Auth::guard('employee')->user()
But after the redirect, the Auth user is null wherever I dd() him.
I have just for the sake of testing tried to access him on my admin.home view via dd() after a successful redirect.
uj5u.com熱心網友回復:
使用您目前擁有的東西,您可以進行一些小的調整來解決這個問題。Auth::guard('employee')->attempt([...])正在嘗試登錄用戶,因此當您進入該if塊時,該用戶已經登錄,因此您無需從警衛處檢索它們并再次登錄。回傳回應時,您不需要呼叫send回應上的方法。這是在回應離開內核后處理的;它是腳本中第一個到最后一個陳述句index.php,用于加載您的應用程式:
$response = $kernel->handle(
$request = Request::capture()
)->send();
如果您send在仍在中間件堆疊中時呼叫回應(如果您在路由操作中),您將過早回傳標頭,將回應內容重繪 到客戶端并完成請求。中間件堆疊中的任何其他內容都無法將標頭添加到最終將被發送的回應中。一旦send呼叫該方法,它就不會再次發送標頭。這意味著 StartSession 和 EncryptCookies 中間件添加的 cookie 不會被發送。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/406306.html
標籤:
