1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Laravelで個人開発】ユーザー認証系の機能を導入する

Last updated at Posted at 2020-06-25

はじめに

このドキュメントは、Laravel初心者の方が、ユーザー登録、ログインを必要とするサービスを作るために、Laravelから標準的に提供されているパッケージを用いてサクッと実装することをゴールに定め書いています。

ゴールの具体的な状態

  • 以下の機能を提供できる
    • 会員登録
    • ログイン/ログアウト
    • パスワードリマインダー
  • 上記機能における各種メッセージが日本語で提供される

インストールするソフトウェア・パッケージ

今回は、laravel/uiを導入するのみです。最新のバージョンは2.xですが、今回インストールしたLaravelのバージョンは6.xなので、1.xを指定してインストールします。

導入手順

vesselを用いた環境で作業を進めます。

1. laravel/uiのインストール

./vessel comp require laravel/ui "^1.0" --dev
composer require laravel/ui "^1.0" --dev

2. 認証機能のセットアップ

# 認証用のスキャフォールド生成
./vessel art ui vue --auth
php artisan ui vue --auth

# マイグレーション
./vessel art migrate
php artisan migrate

3. ローカライズ設定

config/app.php
# タイムゾーンを以下の値に変更
'timezone' => 'Asia/Tokyo',

# ロケールを以下の値に変更
'locale' => 'ja',

# fakerロケールを以下の値に変更(テストデータを作るときに必須の設定)
'faker_locale' => 'ja_JP',

4. 言語ファイルの追加

プロジェクトのルートディレクトリに移動して以下を実行します。成功すれば、 resources/lang/ja というディレクトリが新たに作成されています。

php -r "copy('https://readouble.com/laravel/6.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"
php -f install-ja-lang.php
php -r "unlink('install-ja-lang.php');"

7. テストデータのセットアップ

下記のファイルのコメントアウトを解除し、UserTableSeederを作リます。これにより、認証用のユーザーテーブルに、テストデータを作成することができるようになります。

databese/seeds/DatabaseSeeder.php
    public function run()
    {
        // $this->call(UsersTableSeeder::class);
        $this->call(UsersTableSeeder::class);
    }

以下は内容をそのままコピペします。

databese/seeds/UsersTableSeeder.php
<?php

use Illuminate\Database\Seeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        factory(App\User::class, 30)->create();
    }
}

新しいクラスを追加したのでdump-autoloadを実行する

./vessel comp dump-autoload

7. テストデータを作成する

seedコマンドで、usersテーブルにテストデータを作成します。

./vessel art db:seed

# mysqlコンテナにアクセスする
./vessel mysql

# usersテーブルをカウントする(30件入っているはず)
select count(*) from users;

8. 画面を確認する

localhostにアクセスするとトップページに認証用のメニューが追加されています。
Laravel.png

また、そのメニューからログイン画面に遷移し、適当な文字列を入力してログインを試みると、日本語でエラーメッセージが出力されます。
validate.png

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?