如何在Laravel上处理'引发新的DecryptException('有效负载无效'')'

时间:2019-04-23 09:11:02

标签: laravel

我在地穴类上有一个小的Laravel项目。对于Crypt :: encrypt(..)和Crypt :: decrypt(..)都可以正常工作。但是我有问题,如果我直接更改加密值,然后尝试捕获异常。例如,我的加密值是

zczc1234j5j3jh38234wsdfsdf214

然后我直接添加一些单词,如下所示。

zczc1234j5j3jh38234wsdfsdf214_addsometext

我尝试解密并得到如下错误

throw new DecryptException('The payload is invalid.')

因此,我尝试使用render方法捕获异常。

public function render($request, Exception $exception)
{
    if ($exception instanceof \Illuminate\Contracts\Encryption\DecryptException) {
        dd("error");
        return route('login')->withError('Your DB may be hacked');
    }
    return parent::render($request, $exception);
}

我不知道为什么方法不触发,感谢并感谢所有评论。

1 个答案:

答案 0 :(得分:0)

您应该使用

use Illuminate\Contracts\Encryption\DecryptException;

try {
    $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
    //
}

检查https://laravel.com/docs/5.8/encryption