亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
1. Pasang pakej JWT
2. Menerbitkan fail konfigurasi
3. Menjana kunci rahsia
4. Konfigurasikan model pengguna
5. Sediakan Pengawal Pengesahan
6. Buat pengawal pengesahan
7. Tentukan laluan API
8. Uji aliran
Pilihan: Sesuaikan tamat tempoh token
Nota & Petua Keselamatan
Rumah rangka kerja php Laravel Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

Jul 26, 2025 am 09:32 AM

Pasang pakej Tymon/JWT-Auth; 2. Menerbitkan fail konfigurasi JWT; 3. Menjana kunci JWT dan konfigurasi .env; 4. Model Pengguna melaksanakan antara muka JWTSubject; 5. Sediakan pengawal JWT dalam konfigurasi auth; 6. Buat pengawal yang termasuk log masuk, logout, menyegarkan dan mendapatkan maklumat pengguna; 7. Tentukan laluan dalam API.PHP dan memohon Auth: API middleware; 8. Permintaan laluan yang dilindungi melalui kebenaran: Pembawa untuk menyelesaikan proses pengesahan. Seluruh proses perlu memastikan bahawa JWT_SECRET selamat dan pengesahan input dilaksanakan dengan ketat, dan akhirnya melaksanakan pengesahan API tanpa statik berdasarkan JWT di Laravel.

Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

Melaksanakan Pengesahan JWT (JSON Web Token) di Laravel adalah keperluan umum untuk membina API tanpa stat. Berikut adalah panduan yang jelas, langkah demi langkah menggunakan pakej tymon/jwt-auth yang popular.

Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

1. Pasang pakej JWT

Pertama, pasangkan pakej tymon/jwt-auth melalui komposer:

 Komposer memerlukan Tymon/JWT-Auth

Nota: Untuk Laravel 10/9, pastikan anda menggunakan versi yang serasi. Sehingga versi baru -baru ini, gunakan ^2.1 .

Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

2. Menerbitkan fail konfigurasi

Terbitkan fail konfigurasi JWT menggunakan Artisan:

 PHP Artisan Vendor: Publish --Provider = "Tymon \ JWTAuth \ Providers \ LaravelserviceProvider"

Ini mewujudkan fail config/jwt.php di mana anda boleh menyesuaikan tingkah laku token (TTL, algoritma, dan lain -lain).

Bagaimana untuk melaksanakan pengesahan JWT di Laravel?

3. Menjana kunci rahsia

Menjana kunci rahsia untuk menandatangani token:

 PHP Artisan JWT: Rahsia

Perintah ini menambah entri JWT_SECRET ke fail .env anda - Kejam untuk mendapatkan token anda.

Contoh dalam .env :

 Jwt_secret = your_generated_secret_key_here

4. Konfigurasikan model pengguna

Pastikan model User anda (biasanya App\Models\User ) melaksanakan kontrak JWTSubject :

 <? Php

Model Namespace App \ Models;

Gunakan Illuminate \ foundation \ auth \ user sebagai sahihble;
Gunakan tymon \ jwtauth \ contracts \ jwtsubject;

Pengguna Kelas Memperluas Penghantaran Authentible JWTSubject
{
    // ...

    /**
     * Dapatkan pengenal yang akan disimpan dalam tuntutan subjek JWT.
     */
    fungsi awam getjwtidentifier ()
    {
        kembali $ this-> getKey ();
    }

    /**
     * Kembalikan array nilai utama, yang mengandungi sebarang tuntutan tersuai yang akan ditambah kepada JWT.
     */
    fungsi awam getjwtcustomclaims ()
    {
        kembali [];
    }
}

5. Sediakan Pengawal Pengesahan

Kemas kini config/auth.php untuk menambah pengawal JWT:

 &#39;pengawal&#39; => [
    &#39;web&#39; => [
        &#39;pemandu&#39; => &#39;sesi&#39;,
        &#39;Penyedia&#39; => &#39;Pengguna&#39;,
    ],

    &#39;api&#39; => [
        &#39;Pemandu&#39; => &#39;JWT&#39;, // Gunakan Pemandu JWT untuk API
        &#39;Penyedia&#39; => &#39;Pengguna&#39;,
    ],
],

Juga, pastikan laluan api anda menggunakan pengawal api (ini sering lalai di Laravel).


6. Buat pengawal pengesahan

Menjana pengawal untuk mengendalikan log masuk, logout, menyegarkan, dan butiran pengguna:

 PHP Artisan Make: Controller AuthController

Tambahkan kaedah seperti:

 App Namespace \ http \ controllers;

Gunakan App \ Models \ User;
Gunakan Illuminate \ http \ request;
Gunakan Illuminate \ support \ facades \ hash;
Gunakan tymon \ jwtauth \ pengecualian \ jwteexception;
Gunakan jwtauth;

Kelas AuthController memanjangkan pengawal
{
    log masuk fungsi awam (permintaan $ permintaan)
    {
        $ kelayakan = $ permintaan-> sahaja (&#39;e-mel&#39;, &#39;kata laluan&#39;);

        Cuba {
            jika (! $ token = jwtauth :: percubaan ($ kelayakan)) {
                tindak balas kembali ()-> json ([&#39;error&#39; => &#39;kelayakan tidak sah&#39;], 401);
            }
        } tangkapan (JWTException $ e) {
            tindak balas kembali ()-> json ([&#39;error&#39; => &#39;tidak dapat membuat token&#39;], 500);
        }

        tindak balas kembali ()-> json (compact (&#39;token&#39;));
    }

    fungsi awam GetAuthenticatedUser ()
    {
        Cuba {
            jika (! $ user = jwtauth :: parsetoken ()-> mengesahkan ()) {
                respons balik ()-> json ([&#39;user_not_found&#39;], 404);
            }
        } tangkapan (JWTException $ e) {
            tindak balas kembali ()-> json ([&#39;error&#39; => $ e-> getMessage ()], $ e-> getStatusCode ());
        }

        tindak balas kembali ()-> json (compact (&#39;user&#39;));
    }

    logout fungsi awam ()
    {
        Jwtauth :: invalidate (jwtauth :: getToken ());

        respons balik ()-> json ([&#39;message&#39; => &#39;berjaya log keluar&#39;]);
    }

    fungsi awam menyegarkan ()
    {
        $ token = jwtauth :: refresh ();

        RELIT RESPONSE ()-> JSON ([&#39;token&#39; => $ token]);
    }
}

7. Tentukan laluan API

Dalam routes/api.php :

 Gunakan App \ Http \ Controllers \ AuthController;

Route :: Post (&#39;Login&#39;, [AuthController :: Class, &#39;Login&#39;]);
Route :: Middleware (&#39;Auth: Api&#39;)-> Group (Function () {
    Route :: Get (&#39;Me&#39;, [AuthController :: Class, &#39;GetAuthenticatedUser&#39;]);
    Route :: Post (&#39;Logout&#39;, [AuthController :: Class, &#39;Logout&#39;]);
    Route :: Post (&#39;Refresh&#39;, [AuthController :: Class, &#39;Refresh&#39;]);
});

Sekarang, laluan yang dilindungi memerlukan JWT yang sah di tajuk Authorization :

 Kebenaran: Pembawa <Your-token-here>

8. Uji aliran

  1. Log masuk : Pos /api/login dengan email dan password → Dapatkan Token.
  2. Profil Akses : Dapatkan /api/me dengan Authorization: Bearer <token> → Dapatkan pengguna.
  3. Refresh Token : Post /api/refresh → Dapatkan Token Baru.
  4. Logout : Post /api/logout → Membatalkan token semasa.

Pilihan: Sesuaikan tamat tempoh token

Edit config/jwt.php :

 &#39;ttl&#39; => 60, // token sah selama 60 minit
&#39;refresh_ttl&#39; => 20160, // Refreshable dalam masa 14 hari

Nota & Petua Keselamatan

  • Sentiasa gunakan HTTPS dalam pengeluaran.
  • Simpan token dengan selamat pada pelanggan (misalnya, kuki HttpOnly atau penyimpanan selamat).
  • Mengendalikan token token dan menyegarkan logik pada bahagian depan.
  • Pertimbangkan percubaan log masuk yang mengehadkan kadar.

Pada asasnya, itu sahaja. JWT Auth di Laravel dengan tymon/jwt-auth adalah mudah apabila langkah-langkah persediaan diikuti. Ingatlah untuk memastikan JWT_SECRET anda selamat dan mengesahkan input dengan ketat.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan JWT di Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Membuat peraturan pengesahan tersuai dalam projek Laravel Membuat peraturan pengesahan tersuai dalam projek Laravel Jul 04, 2025 am 01:03 AM

Terdapat tiga cara untuk menambah peraturan pengesahan tersuai di Laravel: Menggunakan penutupan, kelas peraturan, dan permintaan borang. 1. Gunakan penutupan sesuai untuk pengesahan ringan, seperti menghalang nama pengguna "admin"; 2. Buat kelas peraturan (seperti ValidUserNamerule) untuk membuat logik kompleks lebih jelas dan dapat dipelihara; 3. Mengintegrasikan pelbagai peraturan dalam permintaan borang dan mengurus logik pengesahan secara berpusat. Pada masa yang sama, anda boleh menetapkan arahan melalui kaedah mesej tersuai atau array mesej ralat masuk untuk meningkatkan fleksibiliti dan penyelenggaraan.

Menambah sokongan berbilang bahasa ke aplikasi Laravel Menambah sokongan berbilang bahasa ke aplikasi Laravel Jul 03, 2025 am 01:17 AM

Kaedah teras untuk aplikasi Laravel untuk melaksanakan sokongan berbilang bahasa termasuk: menetapkan fail bahasa, penukaran bahasa dinamik, penghalaan URL terjemahan, dan mengurus kekunci terjemahan dalam templat bilah. Pertama, aturkan rentetan setiap bahasa dalam folder yang sepadan (seperti en, es, fr) dalam direktori /sumber /lang, dan tentukan kandungan terjemahan dengan mengembalikan array bersekutu; 2. Terjemahkan nilai utama melalui panggilan fungsi penolong \ _ _ _ _ (), dan gunakan app :: setLocale () untuk menggabungkan sesi atau parameter penghalaan untuk merealisasikan pertukaran bahasa; 3. Untuk URL Terjemahan, laluan boleh ditakrifkan untuk bahasa yang berbeza melalui kumpulan penghalaan prefixed, atau alias laluan dalam fail bahasa yang dipetakan secara dinamik; 4. Simpan kunci terjemahan ringkas dan

Bekerja dengan jadual pivot dalam hubungan laravel banyak-ke-banyak Bekerja dengan jadual pivot dalam hubungan laravel banyak-ke-banyak Jul 07, 2025 am 01:06 AM

TowOrkeffectivyWithPivotTableSinlaravel, firstAccessPivotDataingWithPivot () orwithTimestamps (), thenupdateEntriesWithupdatee XistingPivot (), ManagerelationshipSviadetach () andSync (), AnduseCustompivotModelSwhenneeded.1.usewithPivot () toincludespecificcol

Menghantar pelbagai jenis pemberitahuan dengan Laravel Menghantar pelbagai jenis pemberitahuan dengan Laravel Jul 06, 2025 am 12:52 AM

Laravelprovidesacleanandflexiblaytosendnotificationsviamultiplechannelslikeemail, sms, in-appalerts, andpushnotifications.youdinotificationchannelsinthevia () methodoFanotificationClass, andImplementsPecificmethods (toDDoTaTaStoMail (toDDoTaTaStomail (toDDoTaTaSTOMAIL (

Memahami dan mencipta penyedia perkhidmatan tersuai di Laravel Memahami dan mencipta penyedia perkhidmatan tersuai di Laravel Jul 03, 2025 am 01:35 AM

ServiceProvider adalah mekanisme teras yang digunakan dalam rangka kerja Laravel untuk mendaftarkan perkhidmatan dan memulakan logik. Anda boleh membuat perkhidmatan perkhidmatan tersuai melalui perintah artisan; 1. Kaedah daftar digunakan untuk mengikat perkhidmatan, mendaftarkan singleton, menetapkan alias, dan lain -lain, dan perkhidmatan lain yang belum dimuatkan tidak dapat dipanggil; 2. Kaedah boot berjalan selepas semua perkhidmatan didaftarkan dan digunakan untuk mendaftarkan pendengar acara, melihat sintesis, middleware dan logik lain yang bergantung kepada perkhidmatan lain; Kegunaan umum termasuk antara muka dan pelaksanaan yang mengikat, mendaftarkan fasad, memuatkan konfigurasi, mendaftarkan arahan baris arahan dan melihat komponen; Adalah disyorkan untuk memusatkan pengikatan yang relevan kepada perkhidmatan perkhidmatan untuk mengurus, dan memberi perhatian kepada pendaftaran

Memahami suntikan ketergantungan di Laravel? Memahami suntikan ketergantungan di Laravel? Jul 05, 2025 am 02:01 AM

Suntikan ketergantungan secara automatik mengendalikan kebergantungan kelas melalui bekas perkhidmatan di Laravel tanpa objek baru manual. Intinya adalah suntikan pembina dan suntikan kaedah, seperti lulus secara automatik dalam contoh permintaan dalam pengawal. Ketergantungan parses Laravel melalui jenis arahan dan rekursif mencipta objek yang diperlukan. Antara muka dan pelaksanaan yang mengikat boleh digunakan oleh pembekal perkhidmatan untuk menggunakan kaedah mengikat, atau singleton untuk mengikat singleton. Apabila menggunakannya, anda perlu memastikan jenis arahan, elakkan komplikasi pembina, gunakan pengikatan konteks dengan berhati -hati, dan memahami peraturan parsing automatik. Menguasai ini dapat meningkatkan fleksibiliti dan penyelenggaraan kod.

Mengendalikan pengecualian dan kesilapan pembalakan dalam aplikasi Laravel Mengendalikan pengecualian dan kesilapan pembalakan dalam aplikasi Laravel Jul 02, 2025 pm 03:24 PM

Kaedah teras untuk mengendalikan pengecualian dan kesilapan rakaman dalam aplikasi Laravel termasuk: 1. Gunakan Kelas Pengecualian APP \ Pengecualian untuk mengurus pengecualian yang tidak diasingkan, dan merekodkan atau memberitahu maklumat pengecualian melalui kaedah laporan (), seperti menghantar pemberitahuan Slack; 2. Gunakan monolog untuk mengkonfigurasi sistem log, tetapkan kaedah log dan output dalam config/logging.php, dan membolehkan ralat dan log peringkat di atas dalam persekitaran pengeluaran. Pada masa yang sama, maklumat pengecualian terperinci boleh direkodkan secara manual dalam laporan () dalam kombinasi dengan konteks; 3. Sesuaikan kaedah render () untuk mengembalikan tindak balas ralat format JSON bersatu, meningkatkan kecekapan kerjasama depan dan belakang API. Langkah -langkah ini adalah

Strategi untuk mengoptimumkan prestasi aplikasi Laravel Strategi untuk mengoptimumkan prestasi aplikasi Laravel Jul 09, 2025 am 03:00 AM

Pengoptimuman prestasi Laravel dapat meningkatkan kecekapan aplikasi melalui empat arah teras. 1. Gunakan mekanisme cache untuk mengurangkan pertanyaan pendua, menyimpan data yang jarang berubah melalui cache :: ingat () dan kaedah lain untuk mengurangkan kekerapan akses pangkalan data; 2. Mengoptimumkan pangkalan data dari model ke pernyataan pertanyaan, elakkan pertanyaan n 1, menentukan pertanyaan medan, menambah indeks, pemprosesan paging dan pemisahan membaca dan menulis, dan mengurangkan kesesakan; 3. Gunakan operasi yang memakan masa seperti menghantar e-mel dan mengeksport fail ke pemprosesan asynchronous giliran, gunakan penyelia untuk menguruskan pekerja dan menubuhkan mekanisme semula; 4. Gunakan middleware dan penyedia perkhidmatan dengan munasabah untuk mengelakkan logik kompleks dan kod permulaan yang tidak perlu, dan kelewatan pemuatan perkhidmatan untuk meningkatkan kecekapan permulaan.

See all articles