Langsung ke konten utama

Verifikasi User Laravel 8 API

Ketika sudah registrasi kita perlu verifikasi user, Untuk akses web apps di pastikan user yang emailnya aktif (Authorized).

Setup .env agar bisa kirim melalui gmail

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=youremail@gmail.com
MAIL_PASSWORD=yourpassoword
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=from@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

Tambahkan AuthServiceProvider.php

use Illuminate\Auth\Notifications\VerifyEmail;
use Illuminate\Notifications\Messages\MailMessage;
 
public function boot()
    {
        $this->registerPolicies();

        VerifyEmail::toMailUsing(function ($notifiable$url){
            $spaUrl = $url;

            return(new MailMessage)
                ->subject('Verify Email Address')
                ->line('Click the button below to verify your email address.')
                ->action('Verify Email Address'$spaUrl);
        });
    }

 

Tambahkan controller dan buka controllernya

php artisan make:controller EmailVerificationController

<?php

namespace App\Http\Controllers\API;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Auth\Events\Verified;
use Illuminate\Foundation\Auth\EmailVerificationRequest;

class EmailVerificationController extends Controller
{
    public function sendVerificationEmail(Request $request)
    {
        if($request->user()->hasVerifiedEmail()){
            return [
                'message' => 'Already Verified'
            ];
        }
        $request->user()->sendEmailVerificationNotification();
        return [
            'status' => 'verification-link-sent',
            
        ];
    }
 
    public function verify(Request $request)
    {
        $userID = $request['id'];
        $user = User::findOrFail($userID);
        $date = date("Y-m-d g:i:s");
        $user->email_verified_at = $date
        $user->save();

        return 'Email has been verified';
    }
}

Tambahkan model User MustVerifyEmail

use Illuminate\Contracts\Auth\MustVerifyEmail;

Jangan lupa tambahkan juga di class

class User extends Authenticatable implements MustVerifyEmail

Tambahkan di routing api.php

Route::post('email/verification-notification', [EmailVerificationController::class'
Route::get('email/verify/{id}', [EmailVerificationController::class'verify'])->name('verification.verify');

Komentar

Postingan populer dari blog ini

Apa itu API

Bagaimana membuat aplikasi atau website dengan performa yang baik? Bagaimana membuat website yang mudah dikembangkan di berbagai platform? Bagaimana mengintegrasikan website dengan aplikasi yang berbeda bahasa pemrograman? Jawabannya adalah dengan membuat API. Untuk membuat API, arsitektur yang paling populer yaitu RESTful API.   Pada tutorial kali ini saya akan sharing bagaimana membuat RESTful API menggunakan node.js, express, dan MySQL secara step by step. Api itu RESTful API? RESTful API  merupakan implementasi dari API  ( Application Programming Interface ). REST (REpresentational State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protocol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Mungkin terdengar rumit tapi sebenarnya tidak. Tujuannya untuk menjadikan system dengan performa yang baik, cepat, dan mudah untuk dikembangkan ( scale ) terutama dalam pertukaran dan komunikasi data...

How to use CKEditor in Nuxt Js

Requirement:  Node 14.18.3 NPM 6.14.15 Yarn 1.22.4 yarn add @ckeditor/ckeditor5-vue@23.0.0 yarn add @blowstack/ckeditor5-full-free-build@1.0.2 // plugins/ckeditor.vue import Vue from ' vue ' import CKEditor from ' @ckeditor/ckeditor5-vue ' Vue . use ( CKEditor ) // components/CkEditor.vue < template > < ckeditor : editor = " editor " : value = " value " : config = " config " @ input = " ( event ) => $emit ( ' input ' , event) " /> </ template > < script > let FullFreeBuildEditor; let CKEditor; if (process . client ) { FullFreeBuildEditor = require ( ' @blowstack/ckeditor5-full-free-build ' ); CKEditor = require ( ' @ckeditor/ckeditor5-vue ' ); } else { CKEditor = { component: { template: ' <div></div> ' } }; } export default { name: ' CkEditor ' , components: { ckeditor: CKEditor . component , }, p...

Jaringan Komputer

    Jaringan komputer  adalah sebuah sistem yang terdiri atas komputer-komputer yang didesain untuk dapat berbagi sumber daya (printer, CPU), berkomunikasi (surel, pesan instan), dan dapat mengakses informasi(peramban web). Tujuan dari jaringan komputer adalah[1] agar dapat mencapai tujuannya, setiap bagian dari jaringan komputer dapat meminta dan memberikan layanan (service).Pihak yang meminta/menerima layanan disebut klien (client) dan yang memberikan/mengirim layanan disebut peladen (server). Desain ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer.    Dua buah komputer yang masing-masing memiliki sebuah kartu jaringan, kemudian dihubungkan melalui kabel maupun nirkabel sebagai medium transmisi data, dan terdapat perangkat lunak sistem operasi jaringan akan membentuk sebuah jaringan komputer yang sederhana. Apabila ingin membuat jaringan komputer yang lebih luas lagi jangkauannya, maka diperlukan perala...