我正在使用自定义表进行用户身份验证。我可以像在AuthController.php
public function authenticated(Request $request, $user)
{
dd($user);
}
我收到了用户详细信息。
但当我进入其他路线时,我会在相应的控制器中
dd(Auth::user())
返回null
dd(session()->all())
返回_token
dd(Auth::check())
返回false
我正在使用public_users
表进行身份验证,使用public_email
,public_password
字段进行身份验证,因此我更改了App\User.php
文件,如下所示:
class User extends Authenticatable
{
protected $table = 'public_users';
protected $primaryKey = 'public_users_id';
protected $fillable = [
'public_email',
'public_password'
];
protected $hidden = [
'public_password'
];
// Override required, Otherwise existing Authentication system will not match credentials
public function getAuthPassword()
{
return $this->public_password;
}
}
并在app/Http/Controllers/Auth/AuthController.php
我添加了以下代码
public function loginUsername()
{
return property_exists($this, 'username') ? $this->username : 'public_email';
}
public function authenticated(Request $request, $user)
{
dd($user);
}
我的config/auth.php
已
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
]
]
我做错了什么?我怎样才能创建用户会话?
任何帮助表示赞赏!
答案 0 :(得分:0)
登录后尝试auth()->user()
答案 1 :(得分:-1)
解决!
我从正在关闭请求生命周期的dd($user)
中删除app/Http/Controllers/Auth/AuthController.php
并每次都创建一个新令牌。我需要的只是重定向handleUserWasAuthenticated
/vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php
方法中的默认值
protected function authenticated(Request $request, $user)
{
return redirect()->intended($this->redirectPath());
}