laravel app的外部链接会出现令牌不匹配错误

时间:2016-02-11 20:24:48

标签: laravel-5

我不知道出了什么问题。

在外部网站上,我有一个指向我的laravel 5.0应用程序登录屏幕的链接。

当我点击外部链接时,我的laravel应用程序的登录页面将在新选项卡中打开。

但是当我提交登录表单时,我收到令牌不匹配错误。当我在地址栏中输入网址时,我提交登录表单时不会收到令牌不匹配错误。

我搜索了google,stackoverflow,laracasts,但是他们在谈论ajax的时候到处都没有使用ajax请求来发布我的登录表单。

我希望有人可以帮助我。 提前致谢

抱歉我的英语不好。

// EDIT

//link on external website
<a href="www.my-domain.com/login>Login</a>

//my form
<form action="/login" method="POST">
<input type="hidden" name="_token" value="{!! csrf_token() !!}>
<input type="email" name="email">
<input type="password">
<button>Login</button>
</form>

此代码中可能存在一些拼写错误。但在我的实际代码中没有。就在我从外部链接到我的表单时,我得到令牌不匹配错误。不是当我在地址栏中输入链接时。

1 个答案:

答案 0 :(得分:0)

您的表单中需要csrf_token,由Laravel生成。因此,如果您没有在laravel网站上登录,则可以执行以下两项操作之一:

  1. 删除登录路由上的csrf保护(不推荐)。这样,人们就可以从任何网站登录您的应用,并且非常安全。

  2. 从laravel网站加载登录表单。让您的外部网站致电Laravel以获取登录表单,并在表单中包含csrf_token。然后,您可以在外部网站上打印表单,它将具有正确的令牌。