Sebagai bagian dari kode yang dihasilkan kami, kami juga menghasilkan pengontrol dan rute API. Dengan permintaan populer, pada akhir 2020, kami mengalihkan perlindungan mereka dari Laravel Passport ke Laravel Sanctum yang lebih populer. Artikel ini akan menunjukkan cara menggunakan API yang dilindungi Sanctum dari front-end Anda.
Pertama, kami menghasilkan rute Rute/API.php file, seperti ini:
Route::group(['middleware' => ['auth:sanctum']], function () {
Route::apiResource('projects', 'ProjectsApiController');
Route::apiResource('teams', 'TeamApiController');
// ... Other routes
});
Jadi setiap titik akhir dari pengontrol tersebut harus digunakan hanya dengan otentikasi Sanctum.
Menurut dokumentasi resmi Sanctum, ada tiga cara berbeda untuk melakukan itu:
- dengan token API;
- dalam proyek spa;
- dari aplikasi seluler.
Dalam artikel ini, saya akan berasumsi bahwa Anda akan menggunakan otentikasi token API.
Jadi, prosesnya adalah ini:
- Register pengguna di sistem Anda melalui titik akhir API pendaftaran;
- Log pengguna ke sistem Anda melalui titik akhir login API dan mendapatkan token yang dihasilkan kembali;
- Kemudian, dengan setiap permintaan, pengguna mengirimkan token itu sebagai Pembawa token.
Sebagai bagian dari QuickAdminPanel, kami tidak menghasilkan pengontrol login/register, tetapi mudah untuk mengimplementasikannya.
Langkah 1. Tambahkan hasapitokens ke model pengguna
Di dalam app/model/user.php, Anda perlu menambahkan fragmen tebal ini:
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, HasFactory, Notifiable;
}
Langkah 2. Titik Akhir Pendaftaran
Di dalam Rute/API.php Kami menambahkan titik akhir API publik ini:
Route::post('register', 'Api\\AuthController@register');
Kemudian, kami menghasilkan pengontrol:
php artisan make:controller Api/AuthController
Dan kemudian, di dalam pengontrol itu, inilah kemungkinan implementasi pendaftaran. Anda dapat memodifikasi data apa yang Anda kembalikan, alih -alih objek pengguna lengkap.
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
class AuthController extends Controller
{
public function register(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email',
'password' => 'required|min:6'
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);
$user->roles()->attach(2); // Simple user role
return response()->json($user);
}
}
Dan sekarang kita bisa menyebut titik akhir itu, sebagai POS
Jika Anda meluncurkan ini di Postman dengan beberapa data yang tidak valid, itu akan kembali 422 Kode dengan kesalahan validasi:
Tetapi jika semuanya berjalan dengan baik, Anda akan mendapatkan kembali objek pengguna:

Melihat: Tolong jangan lupa menambahkan Terima: Aplikasi/JSON header.
Langkah 3. Titik Akhir Masuk
Jadi, kami memiliki pengguna, sekarang mereka dapat masuk dengan kredensial mereka, dan mendapatkan token untuk semua permintaan yang akan datang lainnya.
Di dalam Rute/API.phpkami menambahkan ini:
Route::post('login', 'Api\\AuthController@login');
Dan kemudian kami membuat ini login() Metode yang sama AUTHCONTROLLER:
public function login(Request $request)
{
$request->validate([
'email' => 'email|required',
'password' => 'required'
]);
$credentials = request(['email', 'password']);
if (!auth()->attempt($credentials)) {
return response()->json([
'message' => 'The given data was invalid.',
'errors' => [
'password' => [
'Invalid credentials'
],
]
], 422);
}
$user = User::where('email', $request->email)->first();
$authToken = $user->createToken('auth-token')->plainTextToken;
return response()->json([
'access_token' => $authToken,
]);
}
Jika email/kata sandi salah, kami mengembalikan kesalahan validasi dengan 422 kode, tetapi jangan ragu untuk memodifikasinya menjadi 500 kode atau apa pun yang Anda inginkan.

Tetapi jika upaya auth berhasil, kami membuat token pengguna baru (ditenagai oleh Sanctum) dan mengembalikannya.

Langkah 4. Mendapatkan data dengan token dan middleware
Sekarang, kita dapat menggunakan token itu saat melakukan permintaan API lainnya, dan kita harus meneruskannya sebagai a Pembawa token.
Pertama, saya ingatkan bahwa kami menambahkan middleware AUTH: KUDUS untuk panggilan API apa pun yang ingin Anda lindungi.
Route::group(['middleware' => ['auth:sanctum']], function () {
Route::apiResource('projects', 'ProjectsApiController');
Route::apiResource('teams', 'TeamApiController');
// ... Other routes
});
Jadi, jika kami mencoba memuat Get/API/V1/Proyek Tanpa token apa pun, kami mendapatkan kesalahan “tanpa otentikasi” 401 kode:

Tetapi jika kita melewati token pembawa, yang kita dapatkan setelah login …

Ta-daa! Kami memiliki data, yang dilindungi oleh AUTH: KUDUS middleware.
News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door
Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.
Comments are closed, but trackbacks and pingbacks are open.