Use built-in key:generate command

This commit is contained in:
Pig Fang 2019-08-09 11:20:36 +08:00
parent eed205b7f9
commit 29ce9d3df1
9 changed files with 7 additions and 84 deletions

View File

@ -37,7 +37,7 @@ jobs:
- vendor - vendor
key: v1-dependencies-{{ checksum "composer.lock" }} key: v1-dependencies-{{ checksum "composer.lock" }}
- run: cp .env.testing .env - run: cp .env.testing .env
- run: php artisan key:random - run: php artisan key:generate
- run: php artisan salt:random - run: php artisan salt:random
- persist_to_workspace: - persist_to_workspace:
root: ~/repo root: ~/repo

View File

@ -51,7 +51,7 @@ SALT = 2c5ca184f017a9a1ffbd198ef69b0c0e
# #
# You can run [php artisan key:generate] to generate a new key. # You can run [php artisan key:generate] to generate a new key.
# #
APP_KEY = base64:gkb/zouNF6UOSfnr/o+izVMS57WQS3+62YqZBuDyBhU= APP_KEY=base64:gkb/zouNF6UOSfnr/o+izVMS57WQS3+62YqZBuDyBhU=
# Mail Configuration # Mail Configuration
# #

View File

@ -16,7 +16,7 @@ DB_PREFIX = null
PWD_METHOD = BCRYPT PWD_METHOD = BCRYPT
SALT = c67709dd8b7b733aca0d570681fe96cf SALT = c67709dd8b7b733aca0d570681fe96cf
APP_KEY = base64:eVX/xzF5NhpGB2luswliFx9XSBsbbAP21wOi68X/P34= APP_KEY=base64:eVX/xzF5NhpGB2luswliFx9XSBsbbAP21wOi68X/P34=
MAIL_DRIVER = smtp MAIL_DRIVER = smtp
MAIL_HOST = localhost MAIL_HOST = localhost

View File

@ -19,9 +19,7 @@ class BsInstallCommand extends Command
return; return;
} }
if (config('app.env') != 'testing') { $this->call('key:generate');
$this->call('key:random');
}
$this->call('salt:random'); $this->call('salt:random');
$this->call('migrate', ['--force' => true]); $this->call('migrate', ['--force' => true]);
$this->call('jwt:secret', ['--no-interaction' => true]); $this->call('jwt:secret', ['--no-interaction' => true]);

View File

@ -1,74 +0,0 @@
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class KeyRandomCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'key:random {--show : Display the key instead of modifying files}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Set the application key';
/**
* Execute the console command.
*
* @return void
*/
public function handle()
{
$key = $this->generateRandomKey();
if ($this->option('show')) {
return $this->line('<comment>'.$key.'</comment>');
}
// Next, we will replace the application key in the environment file so it is
// automatically setup for this developer. This key gets generated using a
// secure random byte generator and is later base64 encoded for storage.
$this->setKeyInEnvironmentFile($key);
$this->laravel['config']['app.key'] = $key;
$this->info("Application key [$key] set successfully.");
}
/**
* Set the application key in the environment file.
*
* @param string $key
* @return void
*/
protected function setKeyInEnvironmentFile($key)
{
// Unlike Illuminate\Foundation\Console\KeyGenerateCommand,
// I add some spaces to the replace pattern.
file_put_contents($this->laravel->environmentFilePath(), str_replace(
'APP_KEY = '.$this->laravel['config']['app.key'],
'APP_KEY = '.$key,
file_get_contents($this->laravel->environmentFilePath())
));
}
/**
* Generate a random key for the application.
*
* @return string
*/
protected function generateRandomKey()
{
return 'base64:'.base64_encode(random_bytes(
$this->laravel['config']['app.cipher'] == 'AES-128-CBC' ? 16 : 32
));
}
}

View File

@ -13,7 +13,6 @@ class Kernel extends ConsoleKernel
*/ */
protected $commands = [ protected $commands = [
\Laravel\Passport\Console\KeysCommand::class, \Laravel\Passport\Console\KeysCommand::class,
Commands\KeyRandomCommand::class,
Commands\SaltRandomCommand::class, Commands\SaltRandomCommand::class,
Commands\BsInstallCommand::class, Commands\BsInstallCommand::class,
Commands\PluginEnableCommand::class, Commands\PluginEnableCommand::class,

View File

@ -138,7 +138,7 @@ class SetupController extends Controller
]); ]);
if ($request->has('generate_random')) { if ($request->has('generate_random')) {
Artisan::call('key:random'); Artisan::call('key:generate');
Artisan::call('salt:random'); Artisan::call('salt:random');
} }
Artisan::call('jwt:secret', ['--no-interaction' => true]); Artisan::call('jwt:secret', ['--no-interaction' => true]);

View File

@ -114,7 +114,7 @@ return [
| |
*/ */
'key' => env('APP_KEY', 'base64:MfnScX0W/ViN8bZtRt0P481rWP3igcOK80QstjbXUxI='), 'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC', 'cipher' => 'AES-256-CBC',

View File

@ -160,7 +160,7 @@ class SetupControllerTest extends TestCase
// Regenerate keys // Regenerate keys
Artisan::shouldReceive('call') Artisan::shouldReceive('call')
->with('key:random') ->with('key:generate')
->once() ->once()
->andReturn(true); ->andReturn(true);
Artisan::shouldReceive('call') Artisan::shouldReceive('call')