我想以访客身份访问主页,但在 Laravel 中不断面对登录页面
I want to visit homepage as a guest but facing login page continuously in Laravel
当我尝试转到主页时,我一次又一次地面对登录页面。我没有在主页路由中添加任何中间件,但我仍然面临这个问题。
我的登录控制器
protected $redirectTo = '/';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function redirectToProvider()
{
return Socialite::driver(request()->provider)->redirect();
}
public function handleProviderCallback()
{
$provider = request()->provider;
$providerUser = Socialite::driver($provider)->user();
if($providerUser->getEmail() == null) {
$user = User::where($provider . '_id', $providerUser->getId())->first();
} else {
$user = User::where('email', $providerUser->getEmail())->first();
}
if($user && $user->$provider . '_id' == null) {
dd('test');
$user->update([$provider . '_id' => $providerUser->getId()]);
}
if(!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
$provider . '_id' => $providerUser->getId(),
]);
}
auth()->login($user, true);
return redirect($this->redirectTo);
// $user->token;
}
public function showLoginForm()
{
session()->put('previousUrl', url()->previous());
return view('auth.login');
}
public function redirectTo()
{
return str_replace(url('/'), '', session()->get('previousUrl', '/'));
}
我不知道问题出在控制器或路由中。
路线
Route::get('/', 'WelcomePageController@index')->name('welcome');
Auth::routes();
Route::get('/login/{provider}', 'Auth\LoginController@redirectToProvider');
Route::get('/login/{provider}/callback', 'Auth\LoginController@handleProviderCallback');
我只有登录后才能访问主页,但我想以访客身份查看。
home路由是受保护的,可以在HomeController的构造方法中看到。要使其不受保护,请尝试在 constrct 方法中注释该行。
为防止主页视图出错,您也必须编辑此视图。
当我尝试转到主页时,我一次又一次地面对登录页面。我没有在主页路由中添加任何中间件,但我仍然面临这个问题。
我的登录控制器
protected $redirectTo = '/';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function redirectToProvider()
{
return Socialite::driver(request()->provider)->redirect();
}
public function handleProviderCallback()
{
$provider = request()->provider;
$providerUser = Socialite::driver($provider)->user();
if($providerUser->getEmail() == null) {
$user = User::where($provider . '_id', $providerUser->getId())->first();
} else {
$user = User::where('email', $providerUser->getEmail())->first();
}
if($user && $user->$provider . '_id' == null) {
dd('test');
$user->update([$provider . '_id' => $providerUser->getId()]);
}
if(!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
$provider . '_id' => $providerUser->getId(),
]);
}
auth()->login($user, true);
return redirect($this->redirectTo);
// $user->token;
}
public function showLoginForm()
{
session()->put('previousUrl', url()->previous());
return view('auth.login');
}
public function redirectTo()
{
return str_replace(url('/'), '', session()->get('previousUrl', '/'));
}
我不知道问题出在控制器或路由中。
路线
Route::get('/', 'WelcomePageController@index')->name('welcome');
Auth::routes();
Route::get('/login/{provider}', 'Auth\LoginController@redirectToProvider');
Route::get('/login/{provider}/callback', 'Auth\LoginController@handleProviderCallback');
我只有登录后才能访问主页,但我想以访客身份查看。
home路由是受保护的,可以在HomeController的构造方法中看到。要使其不受保护,请尝试在 constrct 方法中注释该行。 为防止主页视图出错,您也必须编辑此视图。