我使用composer create-project october/october
安装了最新版本的OctoberCMS,每次登录时都会出现以下错误:
openssl_encrypt() expects parameter 1 to be string, array given \
/home/.../vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php line 91
正是框架的这一部分,会导致错误:
$value = \openssl_encrypt(
$serialize ? serialize($value) : $value,
$this->cipher, $this->key, 0, $iv
);
版本437
没问题,因此我认为它不是缺少的PHP模块(OpenSSL支持在PHP中编译)。有没有人遇到相同的问题并且知道如何解决?
答案 0 :(得分:1)
在GitHub上有一个open issue。只需将composer.json文件上的Laravel版本降级为5.5.41,然后执行php artisan cache:clear
并删除您的网站cookie。
答案 1 :(得分:0)
<?php namespace October\Rain\Cookie\Middleware;
use Config;
use Illuminate\Contracts\Encryption\Encrypter as EncrypterContract;
class EncryptCookies extends \Illuminate\Cookie\Middleware\EncryptCookies
{
/**
* Indicates if cookies should be serialized.
*
* @var bool
*/
protected static $serialize = true;
public function __construct(EncrypterContract $encrypter)
{
parent::__construct($encrypter);
$except = Config::get('cookie.unencryptedCookies', []);
$this->disableFor($except);
}
}
用上面的代码替换vendor / october / rain / src / Cookie / Middleware / EncryptCookies.php