当我登录我的应用程序,并在我输入时立即返回,然后尝试注销,我从标题中收到错误,我该如何解决?
答案 0 :(得分:8)
我在laravel 5.4中面临同样的问题..然后以下命令对我有效:)
chmod 777 storage / framework / sessions /
在此之前,它是chmod 775 storage / framework / sessions / ...因此我遇到了这个问题......
快乐编码
答案 1 :(得分:3)
来自Laravel 5.3文档
Auth :: routes方法现在为/ logout而不是GET路由注册POST路由。这可以防止其他Web应用程序将您的用户从您的应用程序中删除。要升级,您应该将您的注销请求转换为使用POST动词或为/ logout URI注册您自己的GET路由:
选项一:
Route::get('/logout', 'Auth\LoginController@logout');
有关升级的更多信息,请查看此https://laravel.com/docs/5.3/upgrade
选项2
//Insert this on your head section
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Scripts -->
<script>
window.Laravel = <?php echo json_encode([
'csrfToken' => csrf_token(),
]); ?>
</script>
您希望退出的地方
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ url('/logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();"> Logout
</a>
<form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
</li>
</ul>
干杯
答案 2 :(得分:3)
我通过编辑文件 config-&gt; session.php
解决了这个问题'domain' => env('SESSION_DOMAIN', null),
从文件中移除 SESSION_DOMAIN (.env)
最后 composer dumpautoload
答案 3 :(得分:1)
实际上我在Laravel 5.4中遇到了同样的问题,当我使用表单上传文件时,我发送了令牌并正确上传了文件。当我上传超过max filesize上传的文件时,会出现此问题。因此,只需在VerifyCsrfToken.php中为路由添加一个异常,消息就会消失,但文件无法上传。
use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
protected $except = [
'anexoSesion',
];
public function handle($request, Closure $next)
{
return parent::handle($request, $next);
}
}
答案 4 :(得分:1)
当SESSION_DOMAIN=localhost
为APP_URL
时,我在.env文件中添加了APP_URL=http://localhost
。它对我有用我使用laravel
5.3
答案 5 :(得分:1)
我遇到了这个问题,因为我将本地主机的'secure' => env('SESSION_SECURE_COOKIE', false),
设置为true
。该值在project-folder/config/session.php
文件中。由于我的本地主机不是https
,所以我要面对这个问题。为我的本地主机设置为false
后,问题消失了。
答案 6 :(得分:0)
我遇到了同样的问题。
我在IIS
的Windows机器上运行Laravel / PHP。如果您也这样做,请确保用户IUSR
具有项目目录的修改权限。
在允许用户之后,错误消失了。
答案 7 :(得分:0)
此问题通常会因权限而发生。正如Manish所说,你可以在你的会话文件夹中使用chmod 777,但我不建议这样做。首先检查使用artisan服务的应用程序是否存在相同的问题(而不是通过Nginx或Apache提供应用程序)。如果您不是,那么这是一个权限问题,您可以相应地更改文件夹的所有权。很可能是www-data用户需要写入文件夹的权限,但是,您需要检查您的环境以确保用户在某些情况下会有所不同。
答案 8 :(得分:0)
要解决此问题,请在路径文件中添加这两行(例如web.php)
Route::get('/', 'HomeController@index');// so when you logged out it go back
Route::get('/home', 'HomeController@index');
这解决了我的问题。希望有所帮助。
答案 9 :(得分:0)
<强>照亮\基金会\ HTTP \中间件\ VerifyCsrfToken.php 强>
使用Closure; //导入
protected $except = [
//
];
public function handle($request, Closure $next)
{
$response = $next($request);
if (last(explode('\\',get_class($response))) != 'RedirectResponse') {
$response->header('P3P', 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
}
return $response;
}
或
所有网址
protected $except = [
'*'
];
或强>
如果没有用
<强>照亮\基金会\ HTTP \ Kernel.php 强>
// \ App \ Http \ Middleware \ VerifyCsrfToken :: class
此行添加评论
答案 10 :(得分:0)
开箱即用,Laravel附带了web和api中间件组,其中包含您可能希望应用于Web UI和API路由的常用中间件
如果您检查var obj1 = {
score: [10, 22, 30, 55, 70, 90],
lettersOfMyName: ["a", "m", "r"],
avgScore: null,
favoritePlayers: [{
name: "messi",
club: "barcelona"
},
{
name: "totti",
club: "roma"
}
],
getPlaysIn() {
return this.favoritePlayers.map(function(player) {
return player.name + ' plays in ' + player.club;
});
}
};
console.log(obj1.getPlaysIn());
,您会发现默认情况下app/Providers/RouteServiceProvider.php
中间件组适用于web
中的所有路由。
routes/web.php
现在,如果你去检查protected function mapWebRoutes()
{
Route::group([
'middleware' => 'web',
'namespace' => $this->namespace,
], function ($router) {
require base_path('routes/web.php');
});
}
并查看app/Http/Kernel.php
属性,你会发现一个新的$middlewareGroups
中间件。您可以阅读它,但如果您从EncryptCookies
中间件组中删除此中间件,您的应用可能不会提供您当前获得的web
。
答案 11 :(得分:-1)
使用laravel5.4 for rest API时,我也遇到了这个问题。只需将路由名称添加到app / Http / Middleware / VerifyCsrfToken.php文件中。
protected $except = [
'test/login',
];
添加该行后,我运行API,它成功执行。
答案 12 :(得分:-3)
我在版本5.3.29中遇到了这种问题 以下方法对我有用。
只需更改.env文件中的以下行。
APP_KEY=base64:aBCdeFghI+jKLMnOPqRSTuvw1xYzAbCDeFgHiJKL57+4= (example key)
删除 base64:部分,并按照
进行操作APP_KEY=aBCdeFghI+jKLMnOPqRSTuvw1xYzAbCDeFgHiJKL57+4=
答案 13 :(得分:-4)
转到中间件 - &gt; verifycsrftoken.php - &gt;在指定的数组中添加url。