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

时间:2015-07-31 16:39:41

标签: php angularjs laravel laravel-5

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

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

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

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

我之所以这样做,是因为Angular视图导航仍然有效。由于重定向,#param(/#/users)会丢失,我们只能将用户重定向到信息中心。

这可能是Laravel吗?我对在隐藏所有当前功能的地方学习感到满意,所以我可以从那里开始。

1 个答案:

答案 0 :(得分:0)

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

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

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

这样您的网址和当前视图就不会更改,并且您可以完全控制Angular应用。

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