


Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan SPA dan API menggunakan Laravel Sanctum?
Laravel Sanctum ialah pakej pengesahan ringan yang membolehkan anda melaksanakan pengesahan API dan pengesahan SPA (Aplikasi Halaman Tunggal) dengan mudah dalam aplikasi Laravel. Dalam artikel ini, kami akan meneroka cara menggunakan Laravel Sanctum untuk melaksanakan pengesahan SPA dan API.
Pertama, mari kita lihat apakah itu pengesahan SPA dan API.
Pensijilan SPA merujuk kepada aplikasi satu halaman yang tidak memuatkan semula keseluruhan halaman, tetapi menggunakan AJAX untuk meminta maklumat daripada pelayan web untuk mengemas kini sebahagian kandungan. Apabila menggunakan SPA, API perlu disahkan untuk memastikan bahawa hanya pengguna yang disahkan boleh mengaksesnya.
Pengesahan API merujuk kepada proses pengesahan permintaan API. Apabila pelanggan menghantar permintaan, API perlu mengesahkan bahawa permintaan itu adalah daripada pengguna yang dijangka, dengan itu memastikan titik akhir API hanya digunakan oleh pengguna yang disahkan.
Berikut ialah langkah cara menggunakan Laravel Sanctum untuk melaksanakan pengesahan SPA dan API:
1 Pasang Laravel Sanctum
Kami boleh menggunakan pengurus pakej komposer untuk memasang Laravel Sanctum. Jalankan arahan berikut dalam projek Laravel:
composer require laravel/sanctum
2. Jalankan pemasang Laravel Sanctum
Laravel Sanctum menyediakan pemasang yang mengkonfigurasi aplikasi kami secara automatik semasa pemasangan. Kita boleh menjalankan pemasang ini menggunakan arahan berikut:
php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"
3. Jalankan migrasi
Kita perlu menjalankan migrasi Sanctum untuk mencipta jadual pangkalan data yang diperlukan untuk menyokong operasi Sanctum. Jalankan arahan berikut:
php artisan migrate
4. Konfigurasikan aplikasi
Kami perlu menambah Laravel Sanctum pada timbunan middleware kami:
'api' => [ 'middleware' => ['auth:sanctum'], 'throttle:60,1', 'prefix' => 'api', 'namespace' => 'AppHttpControllersAPI', ],
5. Keluarkan token pengesahan kepada pengguna
Dalam Laravel Sanctum, kita boleh menggunakan kaedah tokenCan untuk menyemak sama ada token mempunyai kebenaran API tertentu. Kami boleh mengeluarkan token pengesahan kepada pengguna menggunakan kaedah createToken:
use IlluminateHttpRequest; /** * Store a newly created resource in storage. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse */ public function store(Request $request) { $user = User::find(1); $token = $user->createToken('token-name', ['server:update'])->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', ]); }
Ini akan mencipta token untuk pengguna yang dipanggil 'token-name' dengan kebenaran pelayan:update.
6. Lindungi titik akhir API
Dalam pengawal kami, kami boleh menggunakan kaedah "perisian tengah" untuk melindungi titik akhir API:
public function update(Request $request, $id) { if (!$request->user()->tokenCan('server:update')) { abort(403, 'Unauthorized'); } // Update the server }
Dalam contoh ini, kami hanya membenarkan mereka yang mempunyai Pengguna dengan pelayan:kebenaran kemas kini mengakses kaedah kemas kini.
7. Menggunakan token pengesahan dalam SPA
Dalam SPA kami, kami boleh menggunakan arahan Sanctum @auth dan @csrf Blade untuk mendapatkan token pengesahan:
<head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Laravel</title> <!-- Fonts --> <link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet"> <script src="{{ asset('js/app.js') }}" defer></script> <!-- Styles --> <link href="{{ asset('css/app.css') }}" rel="stylesheet"> <!-- Meta --> <meta name="csrf-token" content="{{ csrf_token() }}"> </head> <body> <div id="app"> <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm"> <div class="container-fluid"> <a class="navbar-brand" href="{{ url('/') }}"> {{ config('app.name', 'Laravel') }} </a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <!-- Left Side Of Navbar --> <ul class="navbar-nav mr-auto"> </ul> <!-- Right Side Of Navbar --> <ul class="navbar-nav ml-auto"> <!-- Authentication Links --> @guest <li class="nav-item"> <a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a> </li> @if (Route::has('register')) <li class="nav-item"> <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a> </li> @endif @else <li class="nav-item dropdown"> <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre> {{ Auth::user()->name }} </a> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown"> <a class="dropdown-item" href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"> {{ __('Logout') }} </a> <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> @csrf </form> </div> </li> @endguest </ul> </div> </div> </nav> <main class="py-4"> @yield('content') </main> </div> @auth <script> window.Laravel = {!! json_encode([ 'csrf_token' => csrf_token(), 'api_token' => Auth::user()->api_token ]) !!}; </script> @endauth </body>
Dalam contoh ini, kami menggunakan Arahan @auth dan @csrf Blade Sanctum untuk mendapatkan token pengesahan pengguna dan token CSRF.
Itu sahaja tentang cara melaksanakan pengesahan SPA dan API menggunakan Laravel Sanctum. Menggunakan Laravel Sanctum memudahkan untuk menjamin titik akhir API dan aplikasi SPA kami serta membantu kami melaksanakan amalan keselamatan terbaik.
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan pengesahan SPA dan API menggunakan Laravel Sanctum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Laravel - Perintah Artisan - Laravel 5.7 hadir dengan cara baharu untuk merawat dan menguji arahan baharu. Ia termasuk ciri baharu untuk menguji arahan artisan dan demonstrasi disebut di bawah?

Laravel - Penyesuaian Penomboran - Laravel termasuk ciri penomboran yang membantu pengguna atau pembangun menyertakan ciri penomboran. Paginator Laravel disepadukan dengan pembina pertanyaan dan ORM Fasih. Kaedah penomboran automatik

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Laravel - Dump Server - Laravel dump server datang dengan versi Laravel 5.7. Versi sebelumnya tidak termasuk pelayan dump. Pelayan dump akan menjadi kebergantungan pembangunan dalam fail komposer laravel/laravel.

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...
