Laravel5アプリケーションキー


80

Laravelは初めてです。今夜始めたばかりです。実際、私は次のコードを持っています:

'key' => env('APP_KEY', 'SomeRandomString'),

XAMPP / htdocsに/ laravel /ブログ/設定/ app.php
次のようにcmdでこのキーを32ビットに変更したいと思います。

xampp\htdocs\laravel/blog>php artisan key:generate 

キーを生成しますが、xampp / htdocs / laravel / blog / config /app.phpで置換/更新できませんでした


.envファイルはありますか?もしそうなら、そこに鍵があるかどうかを確認してください。
フアンカルロスブラウン

@フアンカルロスブラウン私はそこからそれを手に入れました、ありがとう。
ラハム2015年

ユーザーのパスワードを強調するために、新しい回答を1つ追加しました。
prosti 2017

回答:


108

このラインはあなたにapp.php'key' => env('APP_KEY', 'SomeRandomString'),あなたのアプリケーションのための鍵は、あなたの中に見つけることができると言っている.envライン上のファイルAPP_KEY

基本的には、Laravelに.env最初にファイル内のキーを探し、そこにキーがない場合はを使用するように指示します'SomeRandomString'

を使用するphp artisan key:generateと、.envファイルではなくファイルへの新しいキーが生成されapp.phpます。

kotapeterが言ったように、あなた.envはあなたのルートLaravelディレクトリ内にあり、隠されているかもしれません。xampp / htdocs / laravel / blog


82

key次のコマンドでを生成できます。

php artisan key:generate 

キーは.envファイルに自動的に書き込まれます。

APP_KEY=YOUR_GENERATED_KEY

key世代後の使用--showオプションを見たい場合

php artisan key:generate --show

注:.envはプロジェクトフォルダ内の隠しファイルです。

ここに画像の説明を入力してください


2
デフォルトの空の行がすでにある場合、コマンドを実行すると行が自動的に更新されますAPP_KEY =
Andrew

42

キーのみを印刷する(.envファイルを書き込まない)場合の別のオプションと同様に、次のものを使用できます。

php artisan key:generate --show

これはデフォルトである必要がありますか?それ以外の場合は、php artisan key:generateと入力すると、(できれば開発中の)マシンでパスワードを使用しませんか?IE我々は、職人のキーをPHP必要が:--write生成
トム・アンダーソン

1
@TomAndersenいいえ、APP_KEYは暗号化(デフォルトではCookie)にのみ使用され、パスワードのハッシュには使用されません。私はtight.co/blog/app-key-and-youはいい説明だと思いました。
チャールズウッド

2

ラインから

'key' => env('APP_KEY', 'SomeRandomString'),

APP_KEY.envファイル内に存在するグローバル環境変数です。

トリガーすると、アプリケーションキーを置き換えることができます

php artisan key:generate

コマンド。これにより、常に新しいキーが生成されます。

出力は次のようになります。


Application key [Idgz1PE3zO9iNc0E3oeH3CHDPX9MzZe3] set successfully.

Application key [base64:uynE8re8ybt2wabaBjqMwQvLczKlDSQJHCepqxmGffE=] set successfully.

Laravel5.4ではBase64エンコーディングをデフォルトにする必要があります

Laravelアプリケーションを最初に作成するときに、key:generateが自動的に呼び出されることに注意してください。

キーを変更した場合、で保存されたパスワードは無効になることに注意してHash::make()ください。


4
「キーを変更した場合、Hash :: make()で保存されたパスワードは無効になることに注意してください。」-それも私が思ったものです。私もこれをインターネットでよく読んでいます。ただし、github.com / laravel / framework / blob / 5.5 / src / Illuminate / Hashing / およびgithub.com/laravel/framework/blob/5.5/src/Illuminate/Hashing/…と過去をご覧になる場合このコードのバージョンでは、アプリキーはハッシュのソルトやその他の目的には使用されません。アプリのキーを変更してみましたが、コードが示すように、パスワードはまだ正しくチェックされています。
Leif

1
アプリケーションキーは、ドキュメントに記載されているパスワードではなく、セッションデータの暗号化に使用されます。さらに、少なくとも私の理解では、対称的な復号化可能な暗号化を前提としています。
Sergey Neskhodovskiy 2018

1

私にとって問題は、composer updateこの新しいプロジェクト/フォークにまだ走っていなかったということでした。コマンドは黙って失敗し、何も起こりませんでした。

実行composer updateした後、それは機能しました。


1
あなたは意味するかもしれませんcomposer installcomposer update実際に依存関係を更新したい場合を除いて、プロジェクトの新しいフォークですぐに実行する必要はありません。
ダンアブレイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.