Mari kita mulai dengan cara login dengan username atau email di laravel 7/6 auth. saya akan memberi Anda solusi sederhana login laravel 7/6 dengan username atau email dalam otentikasi. mudah untuk membuat login auth dengan username dan alamat email di aplikasi laravel 7/6.
Terkadang, kita perlu membuat halaman login dengan username atau alamat email untuk login. itu fungsi hebat jika Anda miliki di situs web Anda karena sangat mudah untuk mengingat siapa pun kepada customer Anda. pelanggan jika lupa email maka dia memiliki satu username. Jadi itu sangat membantu.
Dalam laravel 6, saya akan memberikan bagaimana Anda dapat mengatur untuk login dengan username atau email langkah demi langkah. jadi mari kita ikuti langkah-langkah di bawah ini.
Step 1: Install Laravel 6
pertama-tama kita perlu mendapatkan aplikasi versi Laravel 6 baru menggunakan perintah di bawah ini, Jadi buka terminal ATAU command prompt Anda dan jalankan perintah di bawah ini:
composer create-project --prefer-dist laravel/laravel blog
Step 2: Install Laravel UI
Anda harus mengikuti beberapa langkah untuk membuat auth di aplikasi laravel 6 Anda.
Pertama, Anda perlu menginstal paket laravel/ui seperti di bawah ini:
composer require laravel/ui
Step 3: Generate Auth Scaffold
Di sini, kita perlu membuat auth scaffolding di laravel 6 menggunakan perintah laravel ui. jadi, mari kita hasilkan dengan perintah di bawah ini:
php artisan ui bootstrap --auth
Sekarang Anda perlu menjalankan perintah npm, jika tidak, Anda tidak dapat melihat tata letak login dan register yang lebih baik.
Install NPM:
npm install
Run NPM:
npm run dev
Step 4: Add Username Column
Sekarang tambahkan nama pengguna kolom baru ke tabel pengguna Anda, sehingga Anda dapat dengan mudah memperbarui migrasi Anda seperti di bawah ini.
migration
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email');
$table->string('username')->nullable();
$table->timestamp('email_verified_at')->nullable();
$table->boolean('is_admin')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
Sekarang Anda dapat menjalankan migration
php artisan migrate
Step 5: Update Login View
Laravel telah membuat file blade login standar. kita perlu menambahkan bidang nama pengguna comman di atasnya dan menghapus bidang email. jadi mari kita perbarui seperti di bawah ini:
resources/views/auth/login.blade.php
....
<div class="form-group row">
<label for="username" class="col-md-4 col-form-label text-md-right">Username Or Email</label>
<div class="col-md-6">
<input id="username" type="username" class="form-control @error('username') is-invalid @enderror" name="username" value="{{ old('username') }}" required autofocus>
@error('username')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
....
Step 6: Overwrite Login method
Sekarang kita harus overwrite login dengan file LoginController. jadi mari kita tambahkan logincontroller seperti di bawah ini:
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 = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* Create a new controller instance.
*
* @return void
*/
public function login(Request $request)
{
$input = $request->all();
$this->validate($request, [
'username' => 'required',
'password' => 'required',
]);
$fieldType = filter_var($request->username, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
if(auth()->attempt(array($fieldType => $input['username'], 'password' => $input['password'])))
{
return redirect()->route('home');
}else{
return redirect()->route('login')
->with('error','Email-Address And Password Are Wrong.');
}
}
}
Anda dapat menambahkan beberapa data dummy di tabel user Anda.
Sekarang Anda dapat menjalankan proyek Anda.
Anda akan mendapatkan tata letak halaman login seperti di bawah ini:
Saya harap ini dapat membantu Anda ...
authentication auth laravel 7 laravel 6 laravel