2016-08-19 7 views
0

Я работаю над проектом, который нужно хранить зашифрованную информацию, магазин, обновления, шоу (используется в контроллере) отлично работает при использовании use Illuminate\Support\Facades\Crypt;Не удалось Crypt :: расшифровать из ремесленника команды Laravel/Lumen

но когда мне нужно создать команду для запуска в расписании, в том, что командовании мне нужно получить незашифрованый код, но когда я использую его, он показывает

MAC-недействителен

Примечание: когда я использую use Crypt;, код в работе штрафа контроллера, но в команде, он сказал

Класс «Crypt» не найден

Код в Command (функция topupSim() вызвать ошибка):

public function handle() 
{ 
    Log::info("** TopUpForCriticalSimsCommand: started"); 

    $sims = Sim::getCriticalSims(); 
    foreach ($sims as $sim) { 
     $telco_id = $sim->telco_id; 

     //Find topup code with same telco 
     $topup_code = TopupCode::getAvailableCode($telco_id); 

     if ($topup_code) { 
      /** @var TopupCode $topup_code */ 
      if (Engine::topupSim($sim, $topup_code)){ 
       Log::info("** TopUpForCriticalSimsCommand: topup success 
       for {$sim->phone_number} with code {$topup_code->getCensoredCode()}"); 
      }else{ 
       Log::info("** TopUpForCriticalSimsCommand: topup fail 
       for {$sim->phone_number} with code {$topup_code->getCensoredCode()}"); 
      } 
     } 
    } 

    Log::info("** TopUpForCriticalSimsCommand: finished"); 
} 

topupSim функция, код, который использует Crypt:

public static function topupSim(Sim $sim, TopupCode $topupCode) 
{ 
    $code = $topupCode->getCode(); 
    $serial = $topupCode->getSerial(); 

    //TODO: Do topup for sim 
    if (false /*Success*/) { 

     $topupCode->setUse(); 

     return true; 
    } 

    return false; 
} 

2 функция getCode(), getSerial() используют Crypt, эти 2 функции в модели

public function getCode() 
{ 
    $code = Crypt::decrypt($this->getAttribute('code')); 
    return $code; 
} 

public function getSerial() 
{ 
    $serial = Crypt::decrypt($this->getAttribute('serial')); 
    return $serial; 
} 

Файл журнала:

[2016-08-19 02:58:57] lumen.INFO: ** TopUpForCriticalSimsCommand: started 
[2016-08-19 03:01:02] lumen.ERROR: exception 'Illuminate\Contracts\Encryption\DecryptException' with message 'The MAC is invalid.' in D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\encryption\BaseEncrypter.php:48 
Stack trace: 
#0 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\encryption\Encrypter.php(96): Illuminate\Encryption\BaseEncrypter->getJsonPayload('eyJpdiI6InBFT2d...') 
#1 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\support\Facades\Facade.php(218): Illuminate\Encryption\Encrypter->decrypt('eyJpdiI6InBFT2d...') 
#2 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\app\Models\TopupCode.php(114): Illuminate\Support\Facades\Facade::__callStatic('decrypt', Array) 
#3 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\app\Models\TopupCode.php(114): Illuminate\Support\Facades\Crypt::decrypt('eyJpdiI6InBFT2d...') 
#4 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\app\Engine.php(721): Ved\SmsGateway\Models\TopupCode->getCode() 
#5 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\app\Console\Commands\TopUpForCriticalSimsCommand.php(57): Ved\SmsGateway\Engine::topupSim(Object(Ved\SmsGateway\Models\Sim), Object(Ved\SmsGateway\Models\TopupCode)) 
#6 [internal function]: Ved\SmsGateway\Console\Commands\TopUpForCriticalSimsCommand->handle() 
#7 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\container\Container.php(507): call_user_func_array(Array, Array) 
#8 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\console\Command.php(169): Illuminate\Container\Container->call(Array) 
#9 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\symfony\console\Command\Command.php(256): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#10 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\illuminate\console\Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#11 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\symfony\console\Application.php(791): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#12 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\symfony\console\Application.php(186): Symfony\Component\Console\Application->doRunCommand(Object(Ved\SmsGateway\Console\Commands\TopUpForCriticalSimsCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#13 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\symfony\console\Application.php(117): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#14 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\vendor\laravel\lumen-framework\src\Console\Kernel.php(69): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#15 D:\working-tools\xampp\htdocs\VedSmsGateway\source\sms_gateway\artisan(35): Laravel\Lumen\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#16 {main} 

я пытался:

composer dump-autoload 
composer clear-cache 

но без успеха

Кто-нибудь знает, пожалуйста, помогите, спасибо заранее

+0

В этой теме может быть информация [https://stackoverflow.com/questions/46070732/laravel-decryptexception-the-mac-is-invalid/47926508#47926508](https://stackoverflow.com/questions/46070732/ Laravel-decryptexception-The-макинтош-это-инвалид/47926508 # 47926508) – 4givN

ответ

0

ОК, так что мой проект состоит 2 небольших проектов, связанных друг с другом (администратор сайта и апи/бэкэнда)

Проблема была в конфиге/приложением для key. php в стороне api/backend отличается от админ-сайта. Я изменил APP_KEY в .env, теперь все работает нормально!