首页 文章

Laravel会话在页面刷新时销毁

提问于
浏览
0

我有一个管理面板,我用用户身份验证保护 . 一旦我尝试访问它,它会将我重定向到登录表单,该表单使用“访客”中间件(这是预期的行为) . 一旦我尝试登录它就像魅力一样,将我重定向到管理仪表板并创建Auth对象(我可以检索名称) . 但是,如果我单击面板内的任何链接,或按F5,它会将我重定向回登录表单 . 为了测试发生的事情,我从管理面板中删除了'auth'中间件保护,当我尝试检索Auth :: user() - > name属性时,它给了我一个错误 .

Trying to get property 'name' of non-object

所以我假设它在每次刷新页面时都会销毁Auth对象,我不明白这个行为是从哪里来的 . 我正在使用默认的Auth中间件,文档中提供了LoginController(有一些调整):

<?php

namespace App\Http\Controllers\Authentication;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function authenticate(Request $request){
        $email = $request->input('email');
        $password = $request->input('password');
        $remember = $request->input('remember');

        if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
            return redirect()->intended('dashboard');
        }
    }

    public function index(){
        return view('auth.login');
    }
}

管理面板中的所有路由都在我的路由文件中的一个组内:

Route::middleware(['auth'])->group(function () {
    //All of the admin routes here
});

登录路由受“guest”中间件保护,因此没有经过身份验证的用户可以访问登录表单 .

请让我发布您认为可能有用的任何代码,我对Laravel相当新,并且不知道要发布什么 .

1 回答

  • 0

    我解决了这个问题 . 这只是一个菜鸟的错误 . 我在链接的href属性中有 Auth::logout() 函数,认为当有人点击它时它会触发 . 相反,它会在页面加载后立即将我注销,这就是第一次有会话的原因 .

相关问题