我不知道出了什么问题。
在外部网站上,我有一个指向我的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>
此代码中可能存在一些拼写错误。但在我的实际代码中没有。就在我从外部链接到我的表单时,我得到令牌不匹配错误。不是当我在地址栏中输入链接时。
答案 0 :(得分:0)
您的表单中需要csrf_token
,由Laravel生成。因此,如果您没有在laravel网站上登录,则可以执行以下两项操作之一:
删除登录路由上的csrf保护(不推荐)。这样,人们就可以从任何网站登录您的应用,并且非常安全。
从laravel网站加载登录表单。让您的外部网站致电Laravel以获取登录表单,并在表单中包含csrf_token
。然后,您可以在外部网站上打印表单,它将具有正确的令牌。