Как обработать 'throw new DecryptException (' Полезная нагрузка недействительна. ')' На Laravel - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть небольшой проект Laravel, работающий над классом Crypt.Он отлично работает как для Crypt :: encrypt (..), так и для Crypt :: decrypt (..).Но у меня есть проблема, если я напрямую изменяю зашифрованное значение, а затем пытаюсь зафиксировать исключение.Например, мое зашифрованное значение равно

zczc1234j5j3jh38234wsdfsdf214

Затем я добавляю несколько слов, как показано ниже.

zczc1234j5j3jh38234wsdfsdf214_addsometext

Я пытаюсь расшифровать и получить ошибку, как показано ниже

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

Итак, я пытаюсь захватить исключение методом рендеринга.

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 голосов
/ 23 апреля 2019

Вы должны справиться с этим с

use Illuminate\Contracts\Encryption\DecryptException;

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

чек https://laravel.com/docs/5.8/encryption

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...