4 回答

TA貢獻1871條經驗 獲得超8個贊
問題出在您的路由文件中:
Route::group(['namespace' => $namespace,'prefix' => 'admin', 'middleware' => ['auth'] ], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
您正在將默認防護與中間件一起使用。使用防護登錄后,您的默認防護可能無法登錄。這就是為什么它失敗并嘗試將您重定向到登錄頁面的原因:authadminweb
當我嘗試登錄時,在提交有效詳細信息后,它不會將我重定向到儀表板,沒有任何反應。另外,當我嘗試強行打開/儀表板時,它會帶我進入登錄頁面。
相反,您應該在組中指定您正在使用防護:admin
Route::group(['namespace' => $namespace,'prefix' => 'admin', 'middleware' => ['auth:admin']], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
但是,您已經在 to 中使用 指定了 ,因此無需在路由組中再次指定它。以下各項就足夠了,可降低產生錯誤的可能性:DashboardController$this->middleware('auth:admin');
Route::group(['namespace' => $namespace,'prefix' => 'admin'], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});

TA貢獻1815條經驗 獲得超13個贊
身份驗證:::guard(“管理員”)->嘗試($request->僅(“電子郵件”,“密碼”)其返回是真是假?如果返回 false,那么也許玩具沒有散列您的密碼 嘗試將其添加到您的模型中
public function setPasswordAttribute($password)
{
$this->attributes['password'] = Hash::make($password);
}

TA貢獻1877條經驗 獲得超1個贊
應如何定義管理模型的提取示例:
// app/Admin.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class Admin extends Authenticatable
{
use Notifiable;
protected $guard = 'admin';
protected $fillable = [
'name', 'email', 'password',
];
protected $hidden = [
'password', 'remember_token',
];
}
有關多個身份驗證防護的詳細信息

TA貢獻1842條經驗 獲得超22個贊
請注意,身份驗證::檢查不適用于構造。這是因為中間件尚未運行,因此當您嘗試簽入構造時,Auth::check() 應返回 false 或 null。
在您的登錄控制器中,為什么要使用兩個重定向?
protected $redirectTo = '/admin/dashboard';
protected function redirectTo()
{
return '/admin/dashboard';
}
最好堅持一個:-)
在管理員.php中,添加以下內容:
protected $guard = 'admin';
對于您的網絡.php路線,請替換
Route::group(['namespace' => $namespace,'prefix' => 'admin', 'middleware' => ['auth'] ], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
跟
Route::group(['namespace' => $namespace,'prefix' => 'admin', 'middleware' => ['auth:admin'] ], function () {
Route::get('dashboard', 'DashboardController@index')->name('dashboard');
});
最后,在儀表板控制器中.php
替換
/* dd(Auth::check()); */ //return false : just want to show you
跟:
$this->middleware(function ($request, $next) {
dd(Auth::check()); //return false : just want to show you
die;
});
身份驗證::檢查() 應返回 true!
- 4 回答
- 0 關注
- 172 瀏覽
添加回答
舉報