我有一个laravel网站,其中某些新闻文章是 '门' 意味着他们必须登录/注册,以阅读超过第一段。
我安装了Laravel Socialite,这样用户就可以登录谷歌了。我想让用户通过谷歌登录,然后被重定向回他们点击“使用谷歌登录”按钮之前正在查看的页面。
显然,我将在用户登录时隐藏登录区域。
这可能吗?
这是我的代码,但是redirect()->intended()
不起作用:
public function redirectToProvider()
{
return Socialite::driver('google')->redirect();
}
public function handleProviderCallback()
{
try {
$user = Socialite::driver('google')->user();
} catch (\Exception $e) {
return redirect('/login');
}
// check if they're an existing user
$existingUser = User::where('email', $user->email)->first();
if($existingUser){
// log them in
auth()->login($existingUser, true);
} else {
// create a new user
$newUser = new User;
$newUser->name = $user->email;
$newUser->email = $user->email;
$newUser->roles_id = 1;
$newUser->save();
auth()->login($newUser, true);
}
return redirect()->intended();
}
先谢谢你。
米
1条答案
按热度按时间qyswt5oh1#
将url保存在会话中,并在控制器的redirect方法中检索它。