php - 我想以访客身份访问主页,但在 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 方法中注释该行。为防止主页视图出现错误,您也必须编辑此视图。
推荐阅读
- javascript - 我可以将预先存在的 Javascript 代码添加到 ASP.NET MVC C# 应用程序吗
- ethereum - 在哪些情况下,交易可能会将 0x00 作为以太坊中的目标地址?
- ruby-on-rails - 有没有一种快速的方法可以将翻译键添加到所有语言环境
- arm - 使用二进制格式分配变量 - 0B 在 ARM Keil uVision 中导致错误
- node.js - Dockerized Node JS 项目得到:“命令失败信号 SIGTERM”错误
- javascript - 发送请求时从 PayPal 按钮 API 获取 trxId
- python - 有没有办法将 gremlinpython Graph 转换为 networkx Graph
- python - 删除以数字开头的列
- javascript - 如何从渲染函数内部设置状态以做出反应
- python - Scrapy 使用 CrawlSpider 不起作用