登录后刷新页面时,为什么Laravel注销?

时间:2020-05-14 16:36:32

标签: php laravel authentication laravel-7

所有人,谢谢。我解决了这个问题。问题的根源;

<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

希望您能理解我的意思。我正在登录,是的,菜单正常工作。但是刷新页面后,它似乎已注销。

1 个答案:

答案 0 :(得分:1)

您正在Auth::logout()块的第二个href标记的<a>中调用@auth。每次刷新页面时,都会调用Auth::logout()并将其从当前会话中注销。 请从此处删除Auth::logout()并添加注销URL。它将起作用。

@auth
    <a class="dropdown-item" href="#">Profilim</a>
    <a class="dropdown-item" href="{{ route('logout') }}">Çıkış Yap</a>
@endauth