laravel:非Laravel页面上的登录表单

时间:2017-04-30 14:26:22

标签: javascript php laravel authentication

我正在构建一个Web应用程序,该应用程序附带一个使用Jekyll的小型网站。原因在于网站几乎永远不会改变,这样它就能够快速运行(纯HTML + CSS和一些JavaScript)并且半独立于应用程序。

Jekyll网站位于Laravel公共文件夹内,运行正常。因为想要使用我们的应用程序的用户需要访问默认的Laravel auth路由才能登录(/ login)。

我想在我的一个网站页面上添加一个登录表单,使用户无需先访问该应用程序即可登录。

当然我尝试添加一个简单的表单并将其发布到/ login(默认的Laravel路由)但这不会起作用,因为Laravel期望设置一个csrf标记。 我知道Laravel设置了一个包含加密令牌的cookie,但我不确定是否(以及如何)我可以使用它。

是否有任何(简单)方法将登录表单添加到NON-Laravel页面?是否可以仅使用HTML& JavaScript(可能使用Ajax)?

1 个答案:

答案 0 :(得分:3)

你有几个选择。

1-最便宜的选项:仅在登录路由上禁用csrf_token。有人会推荐这个,其他人会说你不应该。如果你想这样做,你可以在线研究。

2-向将返回csrf_token的路线发出ajax GET请求,以便您可以在表单中使用它。在Laravel控制器中,您只需返回会话令牌

public function getToken() {
    return session()->token();
}

3 - 在护照道路上寻求API请求与SPA相同。 https://laravel.com/docs/5.4/passport