我试图在注册后自动登录用户,所以我覆盖了registered()
函数:
protected function registered(Request $request, $user)
{
Auth::login($user);
logger('check', [Auth::check()]);
return redirect('/');
}
但是用户重定向到登录页面!我还尝试了以下代码:
Auth::loginUsingId($user->id);
logger('check', [Auth::check()]);
return redirect('/');
但结果相同!记录器也记录Auth::check()
行,结果是:check [true]
!
答案 0 :(得分:0)
尝试一下:
Auth::onceUsingId($user->id);
如果没有会话和Cookie的用户登录;
希望有帮助
更新
您需要按照以下说明将重定向更改为登录重定向:
https://laravel.com/docs/5.7/authentication#included-authenticating
并按如下所示使用记住的布尔值:
https://laravel.com/docs/5.7/authentication#other-authentication-methods
所以您的代码就是:
Auth::login($user, true);
重定向将通过以下方式完成:
protected $redirectTo = '/';
有关以上链接中所述的模型
答案 1 :(得分:0)
尝试那样使用
登录并“记住”给定的用户...
Auth::login($user, true);
否则请指定后卫
Auth::guard('admin')->login($user);
使用ID登录第三种方式
Auth::loginUsingId(1);
登录并“记住”给定的用户...
Auth::loginUsingId(1, true);
答案 2 :(得分:0)
我为自己的社交媒体应用做了一个简单的注册,可以使用仪表板。这是我的代码。以前我遇到同样的问题,但对我有帮助,但是我解决了。
public function postSignUp(Request $request)
{
$this->validate($request,[
'email' => 'required|email|unique:users',
'first_name'=> 'required|max:120',
'password'=>'required|min:4'
]);
$email = $request['email'];
$first_name = $request['first_name'];
$password = bcrypt($request['password']);
$user = new User();
$user->email = $email;
$user->first_name = $first_name;
$user->password = $password;
$user->save();
Auth::login($user);
return redirect()->route('dashboard');
}
易于使用的登录功能。
public function postSignIn(Request $request)
{
$this->validate($request,[
'email' => 'required',
'password'=>'required'
]);
if(Auth::attempt(['email'=> $request['email'], 'password'=> $request['password']]))
{
//Log in users if true e mail and pass go to dashboard
return redirect()->route('dashboard');
}
return redirect()->back();
}
答案 3 :(得分:0)
我使用以下代码行登录用户
public function login(Request $request)
{
if(Auth::attempt(['email' => $request->email, 'password' => $request->password]))
{
$user = \App\User::where('email', $request->email)->first();
$this->guard('web')->login($user);
# user logged in and remembered
}
else {
# didn't match
}
}
protected function guard()
{
return Auth::guard();
}