Laravel Crypt::encryptString автоматически расшифровывается при сохранении в базе данныхPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Crypt::encryptString автоматически расшифровывается при сохранении в базе данных

Сообщение Anonymous »

В моей базе данных есть поле JSON, где я храню имя пользователя и пароль (в зашифрованном виде).
но после обновления до Laravel 9 мой пароль автоматически сохраняется в расшифрованном виде.
Когда я печатаю расшифрованный пароль, он работает правильно, но в базе данных он сохраняется как исходный пароль.
Ниже приведен мой код.

Код: Выделить всё

class EmailConfiguration extends BaseModel
{
protected $table = 'email_configurations';
protected $guarded = [];
protected $json = ['configuration'];

protected static function boot()
{
parent::boot();

$jsonToString = function ($model) {
// Convert all json attributes to string before saving
foreach ($model->json as $attribute) {
$model->$attribute = json_encode($model->$attribute);
}
};

$stringToJson = function ($model) {
// Convert back all json attributes from strings
foreach ($model->json as $attribute) {
$data = json_decode($model->$attribute, true);
$data = $data ?: [];

// Use fluent interface
$model->$attribute = new Fluent($data);
}
};

static::saving($jsonToString);
static::saved($stringToJson);
static::loaded($stringToJson);
}

}
Код моего репозитория для сохранения конфигурации электронной почты.

Код: Выделить всё

class EmailConfigurationRepository
{

public function save($data)
{
$config= [ 'username'=> $data['user_name'],'password' => Crypt::encryptString($data['password'])];
$configuration = new EmailConfiguration();
$configuration->user_id = $data['user_id'];
$configuration->configuration = $config;
$configuration->save();

return $configuration->refresh();
}

}



Подробнее здесь: [url]https://stackoverflow.com/questions/74808560/laravel-cryptencryptstring-automatically-get-decrypted-while-saving-in-db[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»