当前位置: 首页 > 知识库问答 >
问题:

laravel身份验证中间件未重定向到登录页面

锺离飞尘
2023-03-14

我在auth中间件方面遇到了一些问题。我将中间件放在一个路由组中,并回滚了users表。我希望应用程序将我重定向到我的登录/搜索页面,但它没有这样做,它只是给了我“尝试获取非对象的属性”,它指的是我的仪表板视图中的Auth::user()函数(我不应该访问该函数)。

这是我的路线代码:

 Route::group(['prefix' => '/{username}/', 'middleware' => ['existing_user', 'auth']], function(){ 
     Route::get('/dashboard', function(){
         return view('dashboard');
     });
 });

以下是我的观点:

<h1>{{ Auth::user()->username }}</h1>

另外,我不确定从数据库中删除用户是否意味着Laravel将自动删除用户会话。

谢谢你的帮助!

共有1个答案

齐元章
2023-03-14

用户会话可以通过清除浏览器的域缓存来删除(比如localhost)。

Laravel使用Auth类跟踪会话。由于会话同时在客户端和服务器端工作,因此必须从任一位置删除会话。客户端的删除是通过浏览器的cookie进行的,客户端的删除可以通过文件、数据库或Redis等进行。。。

因此,在这种情况下,从用户表中删除用户是没有意义的。从数据库中删除用户不会帮助Auth类知道不再有会话。实际上auth()-

希望这能让你的概念清晰一点:)

 类似资料:
  • 试图阻止来宾用户的路由。当有人点击时,它将检查用户是否以管理员身份登录。如果admin然后它工作正常,如果代理然后它重定向到登录页面,但如果我作为访客用户点击链接,它不会将我重定向到登录页面,而是显示一些错误: 路由中的错误异常。php第53行:尝试获取非对象的属性。 这是我的路线。php文件:

  • 在不生成Laravel默认身份验证控制器的情况下,我创建了自己的登录和注册控制器。 我的路线是这样的 用于登录 登记 一切都很好。现在我需要一件事。每当我放置中间件时,一个未经身份验证的用户将被重定向到我的自定义登录页面路由到。 如何做到这一点?

  • 我正在验证我的用户,并将其重定向到仪表板(如果凭据正确)。我想保护仪表板路由并添加中间件auth,但现在它总是重定向到登录页面。 路线。php HomeController.php 中间件Authenticate.php 中间件重定向已验证。php

  • 我使用Laravel 5.2。我想问一个问题。如何更改重定向登录表单在laravel当我们已经做登录?我使用的是来自Php artisan make: auth的auth。 我已经登录并重定向到localhost:8000/admin 然后我再次打开localhost:8000/登录。它将重定向到“/”或localhost:8000/ 我的问题是如何将“/”更改为“/”管理员“?因此,即使我已经登

  • 我的管理员控制器扩展了控制器类,在那里我使用方法加载视图页面并传递保护。config/auth.php也通过添加管理员保护和提供程序进行了修改。在app/Actions/Fortify文件夹中,我添加了AttemptToAuthenticate和ReDirectIfTwoFactorAuthenticate类,并更改了命名空间。我的管理员控制器还扩展了Guard。用户的重定向中间件和管理员的重定向

  • 问题内容: 编辑:忘记提及我与AngularJs在一起仅一周了,因此,如果您看到某些东西,您认为应该做得更好,并且与问题无关,请随时在评论部分告诉我。 好的,所以我有我的身份验证控制器和提供程序,由于它们与问题范围无关,因此将不显示。然后,我有一个拦截器来检查拨打电话时用户是否已通过身份验证。如果是这样,我将请求的标头设置为包括用户的Token(如果没有),则将用户重定向到登录页面,甚至不向服务器