Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menambah token pada pengepala respons dalam php

Bagaimana untuk menambah token pada pengepala respons dalam php

藏色散人
藏色散人asal
2023-02-20 09:28:203896semak imbas

Cara menambah token pada pengepala respons dalam PHP: 1. Gunakan mod Pembawa untuk menambah JWT dalam medan Kebenaran dalam pengepala permintaan 2. Selepas pelayan menerima permintaan, gunakan spesifikasi JWT untuk jana token dan pulangkan Hanya berikan kepada pelanggan.

Bagaimana untuk menambah token pada pengepala respons dalam php

Persekitaran pengendalian tutorial ini: sistem Windows 10, PHP versi 8.1, komputer DELL G3

Cara menambah token ke pengepala respons dalam php ?

Penjanaan dan penggunaan token php

1 Mengapa menggunakan token untuk log masuk

Pengasingan bahagian depan dan belakang atau. untuk menyokong aplikasi berbilang web, maka akan ada masalah besar dalam menggunakan kuki atau sesi asal

Pengesahan kuki dan sesi perlu di bawah nama domain utama yang sama untuk pengesahan (pada masa ini, sesi boleh disimpan dalam redis untuk menyelesaikan masalah).

2. Penyelesaian

oauth2 dan jwt

jwt: ialah standard keselamatan. Idea asas ialah pengguna memberikan nama pengguna dan kata laluan kepada pelayan pengesahan, dan pelayan mengesahkan kesahihan maklumat yang diserahkan oleh pengguna jika pengesahan berjaya, token (token) akan dihasilkan dan dikembalikan

OAuth2: Ia ialah rangka kerja kebenaran yang selamat . Ia menerangkan secara terperinci cara untuk mencapai pengesahan bersama antara peranan yang berbeza, pengguna, aplikasi bahagian hadapan perkhidmatan (seperti API) dan pelanggan (seperti tapak web atau APP mudah alih) dalam sistem.

(JWT, Token Web JSON ini digunakan untuk pengesahan di sini)

3 Kaedah penjanaan

Tajuk: Jenis penyulitan

Penerangan : Kandungan mesej<.>

Kunci: Kod rawak yang digunakan untuk menyulitkan

Tiga bahagian di atas disambungkan kemudian gunakan hs256 untuk menyulitkan dan menjana token

Kaedah penjanaan terperinci

1). Pengepala biasanya terdiri daripada dua bahagian: jenis token (iaitu JWT) dan algoritma penyulitan yang digunakan (seperti: SHA256 atau RSA)

{
      "alg": "HS256",
      "typ": "JWT"
}
Kemudian, json ini dikodkan Base64Url dan menjadi bahagian pertama

2). Pengisytiharan adalah mengenai entiti.

{
      "exp": "1525785339",
      "sub": "1234567890",
      "name": "John Doe",
      "admin": true
}
Muatan itu kemudiannya Base64Url dikodkan ke bahagian kedua

(PS: Maklumat ini, walaupun dilindungi oleh gangguan, boleh dibaca oleh sesiapa sahaja. Jangan hantarnya melainkan disulitkan Maklumat penting adalah diletakkan di dalam)

3). Gunakan kunci penyulitan

4). Untuk menandatangani, anda perlu menggunakan bahagian yang dikodkan pertama, bahagian yang dikodkan kedua, dan kemudian kunci kekunci . Gunakan algoritma penyulitan di bahagian pertama untuk menandatangani

HMACSHA256(
          base64UrlEncode(header) + "." + base64UrlEncode(payload),
          key
)
Tandatangan ini digunakan untuk mengesahkan sama ada mesej telah diganggu.

(PHP menggunakan kaedah crypt untuk penyulitan. Nota: SHA-256 digunakan untuk rintangan gangguan, dan AES-256 digunakan untuk penyulitan. Kedua-dua konsep adalah berbeza)

5 lokasi storan

Biasanya anda harus menggunakan mod Pembawa untuk menambah JWT (Kebenaran: Pembawa) dalam medan Kebenaran dalam pengepala permintaan (sudah tentu anda juga boleh meletakkannya di mana-mana sahaja, seperti menghantarnya sebagai parameter selepas URL, selagi pelanggan boleh mengenalinya, tetapi Memandangkan JWT ialah spesifikasi, lebih baik kita ikut spesifikasi)

6 Penggunaan

Pengguna klien memasukkan nama pengguna dan kata laluan dan log masuk, meminta token

pelayan Selepas menerima permintaan, gunakan spesifikasi JWT untuk menjana token dan mengembalikannya kepada klien

Selepas pelanggan menerima token, ia menyahsulitnya, mengesahkan ketepatan masa token (masa tamat tempoh token), dan menyimpannya

Pelanggan menggunakan token untuk meminta data

Selepas pelayan menerima token dan menyahsulitnya, ia mengesahkan identiti pengguna, mengesahkan ketepatan masa, dan kemudian mengesahkan pengguna

7. Kelemahan

1. Tidak dapat membatalkan token yang dikeluarkan (memugar semula tempoh penggunaan token)

2. Bukan mudah untuk berurusan dengan data yang telah tamat tempoh (menyokong ketidaksahihan token)

Jadi jika anda menggunakan token, maka jika token itu Jika ditangkap, ia boleh dipalsukan dan ditiru. Oleh itu, jika keselamatan agak tinggi, masih disyorkan untuk menggunakan oauth2

Pembelajaran yang disyorkan: "

Tutorial Video PHP"

Atas ialah kandungan terperinci Bagaimana untuk menambah token pada pengepala respons dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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