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

当用户未经身份验证时,如何让Laravel发送登录表单,而不是重定向到登录页面?

江航
2023-03-14

目前,Laravel将用户重定向到一个不同的URL,如果他没有登录(例如/auth/login)。/auth/login包含检查用户是否提供了登录凭据的逻辑,在这种情况下,它们将被重定向到另一个页面(eg/home)。

(这是正确的吗?我还在学习。)

我想更改此功能。理想情况下,当用户访问//索引时。在php中,Laravel会检测到他没有登录,并返回不同的视图(登录表单),而不会重定向。用户将在导航栏中看到/#/users,而不是/auth/login。登录表单将提交到同一页面。

现在,当Laravel检测到用户未登录但Auth::check()工作时,它将登录用户并继续使用原始视图。

我想这样做的原因是这样Angular视图导航仍然有效。由于重定向,#参数(/#/user)丢失,我们只能将用户重定向到仪表板。

这有可能吗?拉威尔在吗?我会很满意地了解到所有当前功能都隐藏在哪里,这样我就可以从那里开始了。


共有1个答案

罗业
2023-03-14

Laravel将用户重定向到auth/login,然后在进行身份验证后,将其重定向回其原始视图。

防止这种情况发生的一种方法是将Laravel用作API资源,并让Angular应用程序控制用户界面和操作。

例如,当用户登陆/时,Angular应用程序将通过ajax调用从Laravel API收集所有必要的数据。第一个ajax调用将检查用户是否经过身份验证,如果没有,使用Angular显示带有登录表单的模态。然后使用表单通过Laravel API对用户进行身份验证。

这样你的url和当前视图就不会改变,你可以完全控制你的Angular应用程序。

只是一个想法...希望能有所帮助。

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

  • 我在auth中间件方面遇到了一些问题。我将中间件放在一个路由组中,并回滚了users表。我希望应用程序将我重定向到我的登录/搜索页面,但它没有这样做,它只是给了我“尝试获取非对象的属性”,它指的是我的仪表板视图中的函数(我不应该访问该函数)。 这是我的路线代码: 以下是我的观点: 另外,我不确定从数据库中删除用户是否意味着Laravel将自动删除用户会话。 谢谢你的帮助!

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

  • 问题内容: 我的应用看起来像: 如果用户访问/ game下的页面并没有登录,我想将他们重定向到登录页面。 如何在所有路由器中做到优雅? 问题答案: 基本思想是使用自定义组件(在下面的示例中为PrivateRoute)包装需要身份验证的路由。PrivateRoute将使用某种逻辑来确定用户是否已通过身份验证,然后确定是否通过身份验证。允许请求的路由呈现或重定向到登录页面。 在react-router

  • 我的应用程序看起来像: 如果用户访问 /game下的页面并且没有登录,我想将他们重定向到登录页面。 如何在所有路由器中以优雅的方式进行?

  • Java 6 Servlet 2.5 WebLogic 12.1 Spring MVC 4.3.4.release Spring Security 4.2.0.版本 我实现了一个CustomAuthenticationProvider来根据Oracle db对用户进行身份验证:用户实际上是db用户,因此我尝试连接到db以检查用户/密码,如果结果是肯定的,则加载权限。 除非发生登录错误,否则配置工作