gpt4 book ai didi

php - LARAVEL Payload is invalid 错误但解密数据是正确的

转载 作者:行者123 更新时间:2023-12-04 12:12:43 25 4
gpt4 key购买 nike

最近我用 Composer 做了一个新项目,并用 make:auth 添加了非常基本的身份验证 - 没什么特别的。

接下来我想加密姓名 邮箱 我的数据库中的列,所以我将它们的类型从 VARCHAR(191) 更改为 LONGTEXT 并向用户模型添加了一些非常基本的修改器

public function setNameAttribute($value) {
$this->attributes['name'] = Crypt::encryptString($value);
}

public function getNameAttribute($value) {
return Crypt::decryptString($value);
}

public function setEmailAttribute($value) {
$this->attributes['email'] = Crypt::encryptString($value);
}

public function getEmailAttribute($value) {
return Crypt::decryptString($value);
}

但是,当我使用我的非常简单的路线进行测试时,即使我在错误内容中看到字段已被正确解密,我也会得到有效载荷无效错误。
Route::get('user',function(){
$user= \App\User::find(3);
//dd($user->name);
dd(Crypt::decryptString($user->name));
dd(Crypt::decryptString($user->email));

});

截图链接
https://ibb.co/deBPpR

最佳答案

错误是因为 您正在拨打 Crypt::decryptString在已经变异(和解密)的名称属性上 .即您的 getNameAttribute解密加密的字符串并在您调用时

Crypt::decryptString($user->name); // this is causing the error

您基本上可以再次传递解密的字符串进行解密。

只需:
echo $user->name;

你会得到解密的名字。

如果您真的想查看原始值,请使用:
echo $user->getOriginal('name'); //get original value from DB bypassing the accessor

关于php - LARAVEL Payload is invalid 错误但解密数据是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48541275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com