Laravel 入門編: Laravelのログイン機能の追加

laravel/uiのインストール

composer require laravel/ui

composerコマンドでインストールできます。

ログイン機能の追加

artisan ui vue --auth

artisanコマンドでログイン機能を追加します。
Vue.jsを使用するため、node.jsのインストールが必要になります。

yum install nodejs

yumコマンドでnode.jsをインストールすることができます。

npm install && npm run dev

npmコマンドを実行し、https://<IP>/loginにアクセスするとlogin画面が表示されます。

メール認証

このままの状態では、使用されていないメールアドレスでも登録できてしまいます。
実際に存在するメールアドレスのみの登録としたいので、メール認証の機能を追加していきます。

.envの変更

Laravelのメールに関する設定の変更を行っていきます。

MAIL_DRIVER=smtp
MAIL_HOST=<MAILHOST_IP>
MAIL_PORT=<MAILHOST_PORT>
MAIL_USERNAME=<MAIL_USER>
MAIL_PASSWORD=<MAIL_PASS>
MAIL_ENCRYPTION=<MAIL_ENCRYPTION>

app/User.phpの変更

app/User.phpの変更を行っていきます。

修正前

<?php
 namespace App;
 use Illuminate\Contracts\Auth\MustVerifyEmail;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
 class User extends Authenticatable
 {
     use Notifiable;

修正後

<?php
 namespace App;
 use Illuminate\Contracts\Auth\MustVerifyEmail as MustVerifyEmailContract;
 use Illuminate\Auth\MustVerifyEmail;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
 class User extends Authenticatable implements MustVerifyEmailContract
 {
     use MustVerifyEmail, Notifiable;

app/Http/Controllers/HomeController.phpの変更

HomeController.phpの変更を行っていきます。

修正前

class HomeController extends Controller
 {
     public function __construct()
     {
         $this->middleware('auth');
     }

修正後

class HomeController extends Controller
{
public function __construct()
{
$this->middleware('verified');
}

routes/web.phpの変更

web.phpの変更を行っていきます。

修正前

Auth::routes();

修正後

Auth::routes(['verify' => true]);

すべて変更するとメール認証の設定が完了です。
新規ユーザを登録するとメールが届くことが確認できると思います。
届いたメールの「Verify Email Address」をクリックすると認証完了です。