Laravel 5.7 Email Doğrulama Eğitimi Örneği

Laravel 5.7 E-posta Doğrulama Eğitici Örneği Scratch’dan günümüzün önde gelen konusu. Bu sürümde, ayarları yapılandırmanız ve her şeyi ayarlamak için biraz kod yazmanız gerekiyor. E-posta doğrulama, web uygulamalarındaki zorunlu işlevselliktir ve laravel ile çok kolay hale gelir. O zaman yapalım.

Laravel 5.7 Email Doğrulama Eğitimi Örneği

Öncelikle, aşağıdaki komutu kullanarak Laravel 5.7’yi yükleyin.

composer create-project laravel/laravel emailVerify --prefer-dist

# or

laravel new emailVerify

Klasöre git.

cd emailVerify

Favori IDE veya Editörünüzü ateşleyin.

code .

MySQL veritabanını oluşturun ve .env dosyasının içindeki kimlik bilgilerini yazın.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=emailVerify
DB_USERNAME=root
DB_PASSWORD=root

Tamam, şimdi aşağıdaki komutu kullanarak tabloları taşıyın.

php artisan migrate

Şimdi, users tablosuna bakın ve email_verified_at adında bir tane daha alan var.

Laravel 5.7’de yeni olan email_verified_at sütunu var. Böylece kullanıcı e-postayı kaydedip doğruladığında, zaman damgası buraya kaydedilir. Buna dayanarak, bu kullanıcının e-postayı onayladığını veya ayırt ettiğini ayırt edebiliriz. Bu tür bir işlevsellik için, genellikle veri türü booleanını kullandık, ancak günümüzde insanlar bu tür bir hedefe ulaşmak için bir zaman damgası kullanıyor.

Laravel 5.7 Auth Scaffolding (Kullanıcı İsketleti)

Tamam, şimdi terminale gidin ve aşağıdaki komutu yazın.

php artisan make:auth

Bu komut, “verify.blade.php” adlı bir başka görünüm daha oluşturdu. Bu sürümde doğrulama işlevi uygulandığı için Laravel 5.7’de yenidir.

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Verify Your Email Address') }}</div>

                <div class="card-body">
                    @if (session('resent'))
                        <div class="alert alert-success" role="alert">
                            {{ __('A fresh verification link has been sent to your email address.') }}
                        </div>
                    @endif

                    {{ __('Before proceeding, please check your email for a verification link.') }}
                    {{ __('If you did not receive the email') }}, <a href="{{ route('verification.resend') }}">{{ __('click here to request another') }}</a>.
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

User modelindeki mustVerify interface’sini Implement edelim

User.php modelinde, MustVerifyEmail adlı bir ek sözleşme daha görebilirsiniz. E-posta doğrulama işlemini kullanmak için bu sözleşmeyi uygulamamız gerekiyor.

<?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',
    ];
}

E-Posta onayı için route ekleyelim

routes >> web.php dosyasına gidin ve Auth::routes()  içindeki ek parametreyi ekleyin.

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

Bu, yeni Doğrulama denetleyicisini rota eylemleriyle sağlar. Yeni bir denetleyiciyi, VerificationController.php dosyasını zaten Laravel 5.7 ile birlikte görebiliyorsunuz.

Ayrıca, HomeController rotasını korumamız gerekiyor, bu yüzden bunu middleware ekleyerek yapalım.

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

E-posta yapılandırmasını ayarlama

Bu örnek için mailtrap kullanıyorum. Yani https://mailtrap.io/signin adresinde oturum açın.

Demo gelen kutusuna gidin ve kimlik bilgilerini kopyalayın ve .env dosyanıza yapıştırın.

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

E-posta doğrulama işlevini test edin

Öncelikle tarayıcıya gidin ve http://localhost:8000/register‘a gidin ya da benim gibi http://emailverify.test/register adresine gidin.

Bu sayfayı göreceksiniz.

Şimdi mailtrap gidin ve doğrulama postasının geldiğini görebilirsiniz.

Ayrıca, veritabanına bakın ve kullanıcı tablosunu analiz edin.

Burada email_verified_at boş. Şimdi, e-postanıza gelen bağlantıyı tıklayın ve e-postanız doğrulanacak ve burada zaman damgasının kaydedileceğini görebilirsiniz.

Son olarak, Laravel 5.7 E-posta Doğrulama Eğitimi Örneği bitti. Okuğun için teşekkürler.

Bir Cevap Yazın