#33-Laravel – Verifikasi Email User Laravel

Tujuan

Pada umumnya kita membuat verifikasi email setelah pengguna melakukan Registrasi, pengguna akan mendapatkan email dari pengembang yang berisi link aktivasi, setelah link aplikasi di klik baru email tersebut dapat digunakan untuk login.

Persiapan

  1. Installasi Project Laravel
  2. Konfigurasi Aplikasi & Database
  3. Buat Auth Login Register Laravel
  4. Register Mailtrap

Penerapan

Setelah persiapan dilakukan kita akan mulai membuat penerapan verifikasi email.

Manambahkan implement Mustverify pada Model User

Buka file /app/User.php, lalu tambahkan implements MustVerifyEmail pada class User Model:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

    /**
     * The attributes that should be cast to native types.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

Kemudian tambahkan baris berikut pada routes/web.php dibawah baris Auth::routes();

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

Selanjutnya kita akan memproteksi controller HomeController.php. agar user tidak bisa mengaksesnya sebelum melakukan verifikasi alamat emailnya.

Untuk memproteksi, teman-teman bisa menggunakan middleware verified pada route atau controller yang ingin diproteksi dari user yang belum melakukan verifikasi email.

Buka controller HomeController.php. tambahkan middleware verified pada method __construct di controller ini.

$this->middleware(['auth','verified']);

kita akan menerapkan middleware verified pada controller ini, sehingga controller ini hanya bisa diakses oleh user yang sudah melakukan verifikasi email.

app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware(['auth','verified']);
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        return view('home');
    }
}

Sekarang kita coba lihat hasilnya.

Jalankan Service php artisan serve, kemudian akses halaman register atau halaman daftar usernya http://localhost:8000/register

Register

Buka akun Mailtrap.io anda lalu masuk ke halaman Inbox

Verifikasi Email

Setelah diverifikasi barulah user dapat masul ke halaman Home

Selesai… Selamat mencoba.

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>