我正在构建一个 Web 应用程序,它附带一个使用 Jekyll 的小型网站。这样做的原因是网站几乎永远不会改变,这样它就能够快速运行(纯 HTML+CSS 和一些 JavaScript)并且半独立于应用程序。
Jekyll 站点位于 Laravel 公用文件夹中并且运行良好。目前,想要使用我们的应用程序的用户需要访问默认的 Laravel 身份验证路由以登录 (/login)。
我想在我的网站页面之一上添加一个登录表单,使用户无需先访问应用程序即可登录。
当然,我尝试添加一个简单的表单并将其发布到/login(默认的 Laravel 路由),但这行不通,因为 Laravel 需要设置 csrf token 。 我知道 Laravel 设置了一个包含加密 token 的 cookie,但我不确定我是否(以及如何)能够使用它。
是否有任何(简单的)方法可以将登录表单添加到非 Laravel 页面?是否可以仅使用 HTML 和 JavaScript(可能使用 Ajax)来实现?
最佳答案
您有几个选择。
1- 最便宜的选项:仅在登录路由上禁用 csrf_token。有些人会推荐这个,其他人会说你不应该。如果您想走这条路,您可以在线研究。
2- 向将返回 csrf_token 的路由发出 ajax GET 请求,以便您可以在表单中使用它。在您的 Laravel Controller 中,您只需返回 session token
public function getToken() {
return session()->token();
}
3 - 与 SPA 一样走 API 请求的通行证之路。 https://laravel.com/docs/5.4/passport
关于javascript - laravel:非 Laravel 页面上的登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707474/