Laravel8 Jetstream 로그인 기능 사용

7525 단어 PHPlaravel8라라벨
Laravel Jetstream에서는 프런트 엔드 스카폴드를 Livewire 또는 Inertia.js로 선택할 수 있지만 이번에는 Livewire를 선택했습니다.

절차



설치



composer에서 Laravel Jetstream을 설치합니다.
composer require laravel/jetstream

Livewire를 설치합니다.
※옵션 --teams 를 부가로 チーム管理機能 를 사용할 수 있는 것 같습니다.
php artisan jetstream:install livewire --teams

빌드를 실행합니다.
npm install && npm run dev

마이그레이션 파일을 실행합니다.
php artisan migrate

이제 톱 페이지에 안전하게 액세스할 수 있습니다.

일본어 설정



Laravel을 일본어에 대응시킵니다.
우선은 아래의 값을 수정합니다.

config/app.php
<?php

return [

    'timezone' => 'Asia/Tokyo',

    'locale' => 'ja',

    'fallback_locale' => 'ja',

    'faker_locale' => 'ja_JP',

];

로그인 페이지 페이지도 일본어로 수정해 봅니다.

resources/views/login.blade.php
<div>
                <x-jet-label for="email" value="{{ __('メールアドレス') }}" />
                <x-jet-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
            </div>

            <div class="mt-4">
                <x-jet-label for="password" value="{{ __('パスワード') }}" />
                <x-jet-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" />
            </div>

            <div class="block mt-4">
                <label for="remember_me" class="flex items-center">
                    <x-jet-checkbox id="remember_me" name="remember" />
                    <span class="ml-2 text-sm text-gray-600">{{ __('次回から自動でログインする') }}</span>
                </label>
            </div>

            <div class="flex items-center justify-end mt-4">
                @if (Route::has('password.request'))
                    <a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('password.request') }}">
                        {{ __('パスワードをお忘れですか?') }}
                    </a>
                @endif

                <x-jet-button class="ml-4">
                    {{ __('ログイン') }}
                </x-jet-button>
            </div>

영어 이름이었던 부분을 다시 쓰는 것만으로 간단합니다.

유효성 검사 메시지도 일본어로 변경합니다.ressources/lang/ja 를 작성해, ja 디렉토리의 부하는 ressources/lang/en 와 같습니다.

일본어화 파일은 공식 페이지에서 취득 가능합니다.
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x / 그럼 / 맞는 thphp. HTML
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x/쟈/파기나치온-php. HTML
h tps : // 레아도 bぇ. 이 m/ぁらゔぇl/8. x/쟈/파스ぉ rds-php. HTML
ぇtps://레아도 bぇ. 이 m/ぁらゔぇl/8. x/그럼/ゔぁぃ다치온-php. HTML

다만, ↑를 작성한 것만으로는 일부 일본어화되어 있지 않은 곳이 있는 것 같습니다.
예를 들어, Whoops! Something went wrong
분명히 이것은 아래에 표시되는 것 같습니다. . .

vendor/laravel/jetstream/resources/views/components/validation-errors.blade.php
@if ($errors->any())
    <div {{ $attributes }}>
        <div class="font-medium text-red-600">{{ __('Whoops! Something went wrong.') }}</div>

        <ul class="mt-3 list-disc list-inside text-sm text-red-600">
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

이러한 공식의 일본어화 파일로 대응할 수 없었던 밸리데이션 메세지는, resources/lang하하에 ja.json (을)를 작성해 대처합니다.

resources/lang/ko.json
{
    "Whoops! Something went wrong.": "エラーが発生しました。"
}


일본어로 표시되었습니다. 다른 곳에서도 일본어화할 수 없는 곳을 발견하면, 수시로 resources/lang/ja.json 에 추기해 가면 괜찮을 것 같습니다.

테스트 데이터 작성



이미 User의 Factory가 준비되어 있으므로 아래 파일의 코멘트 아웃을 제거하여 준비 완료입니다.

database/seeders/DatabaseSeeder.php
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
         \App\Models\User::factory(10)->create(); // ここのコメントアウトを外す。
    }
}

Seeder 파일을 실행합니다.
php artisan db:seed

덧붙여서, 사용자 등록 페이지에서 데이터를 작성하는 것도 가능합니다.

로그인 테스트



작성한 테스트 데이터로 로그인을 실행합니다.
대시보드로 리디렉션되면 로그인 성공입니다.


로그인 후에는 프로필 페이지 같은 것 같습니다.


일단 로그인은 성공했기 때문에 여기서 끝납니다.

좋은 웹페이지 즐겨찾기