为啥我登录后刷新页面时 Laravel 会注销?
Posted
技术标签:
【中文标题】为啥我登录后刷新页面时 Laravel 会注销?【英文标题】:Why does Laravel log out when I refresh the page after logging in?为什么我登录后刷新页面时 Laravel 会注销? 【发布时间】:2020-08-31 07:11:37 【问题描述】:谢谢大家。我解决了这个问题。问题的根源;
<a class="dropdown-item" href=" Auth::logout() ">Çıkış Yap</a>
此代码行。 Auth::logout() 函数。没有人点击,但这有效。我会使用路线。
我正在使用 Laravel 7 库。我从登录页面登录并转到主页。但是,当我刷新页面时,会话似乎已经结束。
因为我在刀片模板中使用了@auth 和@guest。用于菜单布局。
LoginController 页面;
class LoginController extends Controller
use AuthenticatesUsers;
protected $redirectTo = RouteServiceProvider::HOME;
public function __construct()
$this->middleware('guest')->except('logout');
HomeController
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
//$this->middleware('auth');
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
return view('home');
web.php
Auth::routes();
Route::get('/', 'HomeController@index')->name('home');
还有这个 layout.app.blade 页面
@guest
<a class="dropdown-item" href=" route('login') ">Giriş Yap</a>
<a class="dropdown-item" href=" route('register') ">Hizmet Ver</a>
@endguest
@auth
<a class="dropdown-item" href="#">Profilim</a>
<a class="dropdown-item" href=" Auth::logout() ">Çıkış Yap</a>
@endauth
我希望你明白我的意思。我正在登录,是的,菜单正常工作。但是当页面刷新时,它似乎被注销了。
【问题讨论】:
***.com/questions/32582926/…查看此链接 这是旧版本的 Laravel。我现在使用的是 7 版本。默认设置。 我知道,但您可以在app/config
中查看这些session.php
文件
【参考方案1】:
您在 href
的第二个 <a>
标记 @auth
块中调用 Auth::logout()
。每次刷新页面时,都会调用Auth::logout()
并从当前会话中注销。
请从那里删除 Auth::logout()
并添加注销 URL。它会起作用的。
@auth
<a class="dropdown-item" href="#">Profilim</a>
<a class="dropdown-item" href=" route('logout') ">Çıkış Yap</a>
@endauth
【讨论】:
以上是关于为啥我登录后刷新页面时 Laravel 会注销?的主要内容,如果未能解决你的问题,请参考以下文章
修复 laravel 5 会话在刷新或进入另一个页面后过期?