Laravel中间件抛出“找不到支持的加密器”消息

时间:2016-03-03 18:59:42

标签: php laravel ubuntu encryption artisan

在laravel 5.2中 简单地说,这段代码很有用:

Route::get('/', function () {
if(Auth::guest())
{
    return Redirect::to('login');
}
else
{
    return view('index');   
}

});

并且此代码不起作用并抛出“未找到支持的加密器。密码和/或密钥长度无效。”

Route::group(['middleware' => ['web']], function () {
//

Route::get('/',function(){
    return view('index');
})->middleware('auth');
});

即使我测试了默认工匠make:laravel的auth,它仍会显示相同的消息。 我认为这不是关键,因为我可以使用第一种方法登录但不能使用中间件。 帮助...

更新 密钥是.env文件和config / app.php文件中相同的32个字符键,'cipher'=> 'AES-256-CBC'

更新2
在帮助和检查Illuminate / Encryption / EncryptionServiceProvider.php后,我发现:

$config = $app->make('config')->get('app');
$key = $config['key'];
$cipher = $config['cipher'];

当我试图回显$ cipher值时,我发现它是'AES-256-CBC',就像在配置文件中一样,但$ key变量为null。那么为什么不从配置文件或.env文件中读取密钥???

1 个答案:

答案 0 :(得分:2)

在App.php文件中有这样的:

'key' => env('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

应该是

'key' => env('APP_KEY', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')

'key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'