Klucz aplikacji Laravel 5


81

Jestem nowy w Laravel. Właśnie zacząłem to dziś wieczorem. Właściwie mam następujący kod:

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

W xampp / htdocs / laravel / blog / config / app.php .
Chcę zmienić ten klucz na 32-bitowy przez cmd jako:

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

Generuje klucz, ale nie może zastąpić / zaktualizować w xampp / htdocs / laravel / blog / config / app.php .


Czy masz plik .env na miejscu? jeśli tak, sprawdź, czy masz tam klucz.
— Juan Carlos Brown

@Juan Carlos Brown Mam to stamtąd, dziękuję.
— Raham

Dodałem jedną nową odpowiedź, aby podkreślić hasła użytkowników.
— prosti

Odpowiedzi:


108

Ta linia w twojej app.php, 'key' => env('APP_KEY', 'SomeRandomString'),jest powiedzenie, że kluczem do aplikacji można znaleźć w .envpliku na linii APP_KEY.

Zasadniczo mówi Laravelowi, aby najpierw szukał klucza w .envpliku, a jeśli go nie ma, to go użyć 'SomeRandomString'.

Gdy użyjesz php artisan key:generate, wygeneruje nowy klucz do .envpliku, a nie do app.phppliku.

Jak powiedział kotapeter, Twój .envbędzie znajdował się w głównym katalogu Laravel i może być ukryty; xampp / htdocs / laravel / blog


83

Możesz wygenerować keynastępującą komendę:

php artisan key:generate 

Klucz zostanie automatycznie zapisany w twoim .envpliku.

APP_KEY=YOUR_GENERATED_KEY

Jeśli chcesz zobaczyć swoją opcję keypo pokoleniu, użyj --showopcji

php artisan key:generate --show

Uwaga: .envjest to plik ukryty w folderze projektu.

wprowadź opis obrazu tutaj


2
linia jest aktualizowana automatycznie po uruchomieniu polecenia, jeśli masz już domyślną pustą linię APP_KEY =
— Andrew

42

Podobnie jak inna opcja, jeśli chcesz wydrukować tylko klucz (nie zapisuje pliku .env), możesz użyć:

php artisan key:generate --show

to powinno być domyślne? W przeciwnym razie, kiedy wpiszesz klucz php artisan: generuj, czy nie łączysz haseł na swojej (miejmy nadzieję, że programistycznej) maszynie? IE potrzebujemy klucza artisan php: generation --write
— Tom Andersen

1
@TomAndersen Nie, APP_KEY służy tylko do szyfrowania (a więc domyślnie plików cookie), a NIE do haszowania haseł. Pomyślałem, że tighten.co/blog/app-key-and-you to miłe wyjaśnienie.
— Charles Wood

2

Z linii

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

APP_KEYto globalna zmienna środowiskowa obecna w .envpliku.

Możesz zastąpić klucz aplikacji, jeśli wyzwolisz

php artisan key:generate

Komenda. To zawsze spowoduje wygenerowanie nowego klucza.

Wynik może wyglądać następująco:


Application key [Idgz1PE3zO9iNc0E3oeH3CHDPX9MzZe3] set successfully.

Application key [base64:uynE8re8ybt2wabaBjqMwQvLczKlDSQJHCepqxmGffE=] set successfully.

Kodowanie Base64 powinno być domyślne w Laravel 5.4

Zauważ, że kiedy po raz pierwszy tworzysz swoją aplikację Laravel, automatycznie wywoływany jest key: generation.

Jeśli zmienisz klucz, pamiętaj, że hasła zapisane za pomocą Hash::make()nie będą już ważne.


4
„Jeśli zmienisz klucz, pamiętaj, że hasła zapisane za pomocą Hash :: make () nie będą już ważne”. - To też coś, o czym myślałem. Czytam to też dość często w internecie. Jeśli jednak spojrzysz na github.com/laravel/framework/blob/5.5/src/Illuminate/Hashing/ ... i github.com/laravel/framework/blob/5.5/src/Illuminate/Hashing/ ... i przeszłość wersje tego kodu, klucz aplikacji nie jest używany do solenia skrótu ani do niczego innego. Próbowałem zmienić klucz aplikacji i, jak sugeruje kod, moje hasło jest nadal poprawnie sprawdzane.
— Leif

1
Klucz aplikacji służy do szyfrowania danych sesji, a nie haseł, o czym jest mowa w dokumentacji, a ponadto, przynajmniej w moim rozumieniu, zakłada on szyfrowanie symetryczne, które można odszyfrować.
— Sergey Neskhodovskiy

1

Dla mnie problem polegał na tym, że jeszcze nie pobierałem composer updatetego nowego projektu / forka . Komenda po cichu zawiodła, nic się nie stało.

Po uruchomieniu composer updatezadziałało.


1
Możesz mieć na myśli composer install. Nie musisz koniecznie composer updatenatychmiast uruchamiać nowego rozwidlenia projektu, chyba że faktycznie chcesz aktualizować zależności.
— Dan Abrey
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.