为啥我登录后刷新页面时 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 的第二个 &lt;a&gt; 标记 @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.1 auth 刷新后注销

修复 laravel 5 会话在刷新或进入另一个页面后过期?

通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?

登录laravel后页面刷新时419页面过期错误

刷新后登录会话被破坏

刷新后保存状态