2020.04.13

Laravel標準の認証をemailからnameに変更する

  • 技術情報
  • laravel
Laravel標準の認証をemailからnameに変更する

お久しぶりです。

少し期間が空いてしまいました。コロナ怖いですね。皆さんうがい手洗い、マスク着用、Social Distanceでこの危機を乗り切りましょう。

今回は久しぶりにLaravelを触る機会があった+新しい知識を得たのでここに共有したいと思います。

Laravel標準の認証をemailからnameに変更する

タイトルにあるよう、Laravel標準の認証をemailからnameに変更しました。

まず認証をアプリケーションに実装する方法は、以下の記事で説明してありますので参考にしてみてください。

https://mavericks09.com/laravel-6-0%e3%81%afmakeauth%e3%81%8c%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84%e3%81%ae%e3%81%a7%e3%81%8a%e6%b0%97%e3%82%92%e3%81%a4%e3%81%91%e3%82%92%e3%80%82/

Laravel標準の認証では、emailとpassowrdでのログインですのでこれをnameとpasswordでのログインに変更していきたいと思います。

と言ってもLaravel様。簡単に実装ができるようになっております。

controllerの編集

// /app/Http/Controllers/Auth/LoginController.php

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;

class LoginController extends Controller
{
    use AuthenticatesUsers;
    protected $redirectTo = '/admin';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
    // ここから ->
    public function username()
    {
        return 'name';
    }
    // <-ここまで
}

とLoginController.phpを編集します。usernameメソッドでemailと指定していたのをnameにオーバーライドすることができます。

viewの編集

<input name="name" value="" type="text">

といった感じでnameをemailからnameに変更してください。

注意点

デフォルトの設定ではnameはユニークではないのでnameが被ってしまう可能性があります。なのでregisterの時点でnameがユニークになるよう設定しておく必要がありますのでご注意を。

参考サイト

https://qiita.com/nekyo/items/d1d9b11d94be1a022608

Marvericks

SHORT MOVIES

株式会社マーベリックス
TEL:0466-66-8445
〒251-0035
神奈川県藤沢市片瀬海岸3丁目20-15

  • Instagram

マーベリックスは神奈川県藤沢、茅ヶ崎をベースに活動するホームページ制作会社です。

© Mavericks Inc.