Php 如何使用数据库会话驱动程序在laravel多重身份验证中获取loggedin客户信息?
我有两种类型的用户管理员(默认用户表)和客户(我创建了客户表)。我使用了laravel jetstream附带的数据库驱动程序的会话。我对管理员身份验证没有问题。我正在为管理员成功获取用户信息。但是,当我与客户一起登录时,我确实会登录,但不会获得任何已登录的客户信息。我查过数据库了 auth.phpPhp 如何使用数据库会话驱动程序在laravel多重身份验证中获取loggedin客户信息?,php,laravel,authentication,fortify,jetstream,Php,Laravel,Authentication,Fortify,Jetstream,我有两种类型的用户管理员(默认用户表)和客户(我创建了客户表)。我使用了laravel jetstream附带的数据库驱动程序的会话。我对管理员身份验证没有问题。我正在为管理员成功获取用户信息。但是,当我与客户一起登录时,我确实会登录,但不会获得任何已登录的客户信息。我查过数据库了 auth.php 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'user
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'customer' => [
'driver' => 'session',
'provider' => 'customers',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'customers' => [
'driver' => 'eloquent',
'model' => App\Models\Customer::class,
],
],
客户登录
public function login(Request $request) : object
{
if (Auth::guard('customer')->attempt($request->only('email', 'password'))) {
return redirect()->intended('/');
}else {
return back()->withErrors(['message' => 'Incorrect email or password']);
}
}
我的会话表如下所示
Schema::create('sessions', function (Blueprint $table) {
$table->string('id')->primary();
$table->foreignId('user_id')->nullable()->index();
$table->string('ip_address', 45)->nullable();
$table->text('user_agent')->nullable();
$table->text('payload');
$table->integer('last_activity')->index();
});
我理解$table->foreigned('user_id')->nullable()->index()指向默认用户id。
对于客户,如何正确存储客户Id和检索信息?我找到了答案。我犯了一个愚蠢的错误
{{ Auth::guard('customer')->user()->name }}
我错过了警卫