Customize Fortify : Login Using username instead email

Create migration to add username column on users table

php artisan make:migration addUsernameOnUsersTable

Add this code on your migration code

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddUsernameOnUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users',function(Blueprint $table){
            $table->string('username')->after('name');
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('username');
        });     
    }
}

Run the migration

php artisan migrate

Change field email to username.

Change in app/fortify.php ‘username’=>’email’ to ‘usename’=>’username’ (line number estimate 49)

Change in FortifyServiceProvider.php

Fortify::authenticateUsing(function (Request $request) {
            $user = User::where('username', $request->username)->first();
            if (
                $user &&
                Hash::check($request->password, $user->password)
            ) {
                return $user;
            }
        });

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.