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

标签 javascript php laravel authentication

我正在构建一个 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/

相关文章:

PHP 将 Windows-1251 转换为 UTF 8

php mysql date.timezone 和冬季和夏季时间

php - Laravel 将数据从一个表移动到另一个表并删除数据来自的列?

javascript - onClick 不适用于我的 React 组件

java - 后台 Chrome 浏览 session 问题

javascript - <a> 标签将 href 附加到当前 url 而不是直接链接到 href 内部的内容

laravel - 重命名目录或文件

php - 如何在 Laravel 中执行准备好的语句

javascript - 使用 ES6 类在 D3 可重用图表中添加缩放功能

javascript - 克隆和修改 CZML 数据包