Проблема с шифрованием/дешифрованием Laravel
Я храню учетные данные пользователей для стороннего сервиса в своей базе данных. При сохранении они преобразуются вencrypted
как показано ниже:
protected $casts = [
'enabled' => 'boolean',
'token_is_valid' => 'boolean',
'service_username' => 'encrypted',
'service_password' => 'encrypted',
'service_practice_pin' => 'encrypted',,
];
Затем мне нужно использовать данные для аутентификации в сторонней службе.
Я могу вернуть полную модель из моей базы данных:dd($integration)
, однако, если я попытаюсь получить доступ к свойствуdd($integration->service_username)
Я получаю следующую ошибку:
The payload is invalid. {"userId":12,"exception":"[object] (Illuminate\\Contracts\\Encryption\\DecryptException(code: 0): The payload is invalid. at /var/www/app/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php:221)
[stacktrace]
Сторонняя служба, которую я использую, требует аутентификации расшифрованных значений.
Я попытался добавить аксессор к модели, но все равно получаю ту же ошибку.
public function getDecryptedServiceUsernameAttribute()
{
return decrypt($this->attributes['service_username']);
}
Как я могу получить/отправить расшифрованное значение? Нужно ли хранить по-другому? текущий тип столбцаvarchar(191)