• Contact Us
Selasa, Mei 23, 2023
-18 °c
Teman Ngoding
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English
No Result
View All Result
Teman Ngoding
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English
No Result
View All Result
Plugin Install : Cart Icon need WooCommerce plugin to be installed.
Teman Ngoding
No Result
View All Result

REST API Login & Register Dengan Sanctum Laravel

admin by admin
Juli 26, 2022
in Laravel, Tutorial
0 0
0
Home Tutorial Laravel

This post is also available in: English

Hallo apa kabar semuanya, semoga teman teman semua sehat dan sukses selalu. Kali ini kita akan membahas cara membuat REST API Login dan Register menggunakan Sanctum di Laravel.

Kalian juga dapat meliat tutorial ini dengan video:

Laravel sangtum merupakan layanan penyedia featherweight authentication system untuk Single Page Application (SPA), mobile application dan API berbasis token yang sederhana. Santum dapat membuat beberapa token API, Token ini dapat diberikan kemampuan untuk menentukan tindakan yang diizinkan untuk dilakukan oleh token.

Sebelum saya lanjutkan, mungkin kalian semua tertarik dengan artikel yang lainnya:

Upload File menggunakan Ajax di Laravel

Menggunakan File System Node.JS

Tutorial Laravel : Push Notification Dengan Firebase Laravel 9

Baiklah kita langsung saja ke tutorialnya.

Langkah 1: Install Laravel

Disini kita akan lakukan install laravel versi terbaru, yang akan kita coba untuk membuat REST API authentication menggunakan sanctum. 

//via Laravel Installer
composer global require laravel/installer
laravel new laravel-sanctum

//via Composer
composer create-project laravel/laravel laravel-sanctum

Langkah 2: Setup Database

Selanjutnya kalian buat database dan lakukan konfigurasi di file .env.

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

Langkah 3: Install Sanctum

composer require laravel/sanctum

Kita dapat menginstall sanctum melalui composer package manager dengan perintah seperti di atas.

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Selanjutnya, kita harus publish sanctum configuration dan file migration menggunakan perintah artisan vendor:publish atau seperti perintah di atas. File sanctum configuration akan ditempatkan di direktori config.

php artisan migrate

Langkah 4: Buat AuthController

php artisan make:controller API/AuthController

 Buat file controller baru dengan nama AuthController di dalam folder app/Http/Controllers/API menggunakan perintah seperti di atas. File controller ini nantinya akan kita gunakan untuk membuat logic authentication di laravel 8 menggunakan sanctum.

<?php
namespace App\Http\Controllers\API;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Auth;
use Validator;
use App\Models\User;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        $validator = Validator::make($request->all(),[
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:8'
        ]);

        if($validator->fails()){
            return response()->json($validator->errors());       
        }

        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password)
         ]);

        $token = $user->createToken('auth_token')->plainTextToken;

        return response()
            ->json(['data' => $user,'access_token' => $token, 'token_type' => 'Bearer', ]);
    }

    public function login(Request $request)
    {
        if (!Auth::attempt($request->only('email', 'password')))
        {
            return response()
                ->json(['message' => 'Unauthorized'], 401);
        }

        $user = User::where('email', $request['email'])->firstOrFail();

        $token = $user->createToken('auth_token')->plainTextToken;

        return response()
            ->json(['message' => 'Hi '.$user->name.', welcome to home','access_token' => $token, 'token_type' => 'Bearer', ]);
    }

    // method for user logout and delete token
    public function logout()
    {
        auth()->user()->tokens()->delete();

        return [
            'message' => 'You have successfully logged out and the token was successfully deleted'
        ];
    }
}

Setelah file AuthController.php berhasil digenerate, sekarang silahkan buka file tersebut dan ubah semua kodenya menjadi seperti di atas. Di file AuthController.php ini, kita membuat method register, login dan logout.

Penjelasan method-method tersebut:

  • Register. Di method ini, kita menambahkan validasi untuk name, email dan password. Jika data POST request gagal divalidasi, maka akan mengirimkan response error dari validasi tersebut. Tapi, jika POST request berhasil divalidasi, maka data dari POST request akan disimpan di table users dan akan membuat token baru, serta akan mengirimkan response json yang berisikan detail dari data yang telah ditambahkan beserta token yang telah berhasil dibuat.
  • Login. Di method ini, kita tambahkan logic untuk memeriksa apakah email dan password yang diinput benar-benar cocok dengan salah satu data di table users. Jika data gagal ditemukan di tables users, maka response yang dihasilkan akan berstatus 401 atau Unauthorized. Tapi jika data tersebut berhasil ditemukan, maka akan membuatkan token baru untuk user tersebut yang akan disimpan di table personal_access_tokens.
  • Logout. Method ini akan menghapus user session dengan menghapus semua token milik user tersebut di table personal_access_token.

Langkah 5: Define Route

//API route for register new user
Route::post('/register', [App\Http\Controllers\API\AuthController::class, 'register']);
//API route for login user
Route::post('/login', [App\Http\Controllers\API\AuthController::class, 'login']);

//Protecting Routes
Route::group(['middleware' => ['auth:sanctum']], function () {
    Route::get('/profile', function(Request $request) {
        return auth()->user();
    });

    // API route for logout user
    Route::post('/logout', [App\Http\Controllers\API\AuthController::class, 'logout']);
});

Buka file routes/api.php dan tambahkan kode route seperti di atas. Disini kita menambahkan route baru yaitu register, login, profile dan logout. Untuk route profile dan logout, kita menggunakan sanctum authenticated guard (‘middleware’ => [‘auth:sanctum’]). Artinya, kedua route tersebut hanya dapat diakses oleh pengguna yang telah diautentikasi atau mengakses menggunakan token.

Langkah 6: Testing API

php artisan serve

Dan selanjutnya kita akan tester hasil dari REST API yang telah kita buat.

Register

laravel 8 sanctum: REST API Auth register

Login

laravel 8 sanctum: REST API auth login

Get Profile

laravel 8 sanctum: get data

Demikian tutorial kali ini saya buat, semoga bermanfaat.

Terimakasih.

Tags: laravelREST API Laravelrest api login laravel
ShareTweetShare
admin

admin

Next Post
Drag and Drop Image/File Upload Menggunakan Laravel

Drag and Drop Image/File Upload Menggunakan Laravel

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

  • Trending
  • Comments
  • Latest
Tutorial CodeIgniter 4 part 1 ~ RESTful API JWT Authentication

Tutorial CodeIgniter 4 part 1 ~ RESTful API JWT Authentication

Juni 2, 2022
REST API Login dan Register Node.js dengan JWT

REST API Login dan Register Node.js dengan JWT

Juli 28, 2022
Tutorial Codeigniter 4 ~ Login dan Register

Tutorial Codeigniter 4 ~ Login dan Register

Mei 30, 2022
Codeigniter 4 ~ Membuat Notifikasi Menggunakan SweetAlert

Codeigniter 4 ~ Membuat Notifikasi Menggunakan SweetAlert

Juni 8, 2022
Tutorial Codeigniter 4 ~ Login dan Register

Tutorial Codeigniter 4 ~ Login dan Register

5
Rekomendasi tempat belajar pemrograman

Rekomendasi tempat belajar pemrograman

3
Menghilangkan Public dan Index.php dari URL Codeigniter 4

Menghilangkan Public dan Index.php dari URL Codeigniter 4

2
Migration Laravel

Migration Laravel

1
HTML Fundamentals – HTML Basic

HTML Fundamentals – HTML Basic

Mei 19, 2023
Pekerjaan Apa yang Akan Diganti oleh AI?

Pekerjaan Apa yang Akan Diganti oleh AI?

Mei 11, 2023
Programmer Atau Hacker?

Programmer Atau Hacker?

April 6, 2023
PENGENALAN BACKEND DEVELOPER

Pemrograman Backend Developer

April 5, 2023
Teman Ngoding

Teman Ngoding tempat berbagi tutorial pemrograman
Read more

Categories

  • Berita
  • C++
  • Codeigniter
  • Events
  • Flutter
  • Golang
  • Java
  • Javascript
  • Laravel
  • MongoDB
  • News
  • Node JS
  • Pemrograman
  • PHP
  • Problem Solution
  • React JS
  • SQL
  • Tutorial
  • TypeScript
  • TypeScript
  • Video Codeigniter
  • Video Git
  • Video Laravel
  • Video Tutorial

Tags

ajax belajar golang belajar reactjs blog browser seluler Cara mendapatkan Uang dari Blog codeigniter codeigniter 3 codeigniter 4 codeigniter4 embed html Error Handling flutter flutter vs react native golang golang dasar html html basic html dasar infinite scroll javascript javascript tutorial laravel laravel 8 laravel 9 laravel9 load more ajax mongodb nodejs pdf pemrograman ajax pemrograman golang pemrograman php reactjs reactjs tutorial reactjs vs react native rest api rest api codeigniter 4 tutorial codeigniter 4 tutorial golang tutorial javascript tutorial laravel tutorial laravel 8 tutorial nodejs tutorial reactjs

Recent News

HTML Fundamentals – HTML Basic

HTML Fundamentals – HTML Basic

Mei 19, 2023
Pekerjaan Apa yang Akan Diganti oleh AI?

Pekerjaan Apa yang Akan Diganti oleh AI?

Mei 11, 2023

© 2022 Teman Ngoding.

No Result
View All Result
  • Home
  • Tutorial
    • Laravel
    • Codeigniter
    • PHP
    • Golang
    • Java
    • Javascript
    • React JS
    • SQL
    • Problem Solution
  • Video Tutorial
    • Video Laravel
    • Video Codeigniter
    • C++
    • Video Git
  • Events
  • Berita
  • Donate
  • Indonesia
    • English

© 2022 Teman Ngoding.

Login to your account below

Forgotten Password?

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
  • English
  • Indonesia