Rumah >pembangunan bahagian belakang >masalah PHP >Cara menggunakan token PHP

Cara menggunakan token PHP

藏色散人
藏色散人asal
2021-09-21 09:21:512894semak imbas

Cara menggunakan token dalam PHP: 1. Pengguna pelanggan memasukkan nama pengguna dan kata laluan untuk log masuk dan meminta token 2. Gunakan spesifikasi JWT untuk menjana token 3. Sahkan ketepatan masa token; 4. , Pelanggan menggunakan token untuk meminta data.

Cara menggunakan token PHP

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.

Bagaimana untuk menggunakan token PHP?

Penjanaan dan penggunaan token php

1 Mengapa menggunakan token untuk log masuk

Pemisahan bahagian hadapan dan belakang atau. untuk menyokong aplikasi berbilang web, maka akan ada masalah besar dalam menggunakan kuki atau sesi asal
Pengesahan kuki dan sesi perlu berada di bawah nama domain utama yang sama untuk pengesahan (pada masa ini, sesi boleh disimpan dalam redis untuk menyelesaikan masalah masalah).

2. Penyelesaian

oauth2 dan jwt

jwt: ialah standard keselamatan. Idea asasnya 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 dijana 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

  1. Tajuk: Jenis penyulitan

  2. Penerangan: Kandungan mesej

  3. kunci: kod rawak yang digunakan untuk menyulitkan

  4. Gunakan tiga bahagian di atas untuk menyambung, dan kemudian gunakan hs256 untuk menyulitkan, menjana token

4 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). muatan ialah penyata. Pengisytiharan adalah mengenai entiti.

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

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

3). Gunakan kekunci penyulitan

4). Untuk menandatangani, anda perlu menggunakan bahagian pertama yang dikodkan, bahagian kedua yang dikodkan, dan kemudian kekunci Kunci. 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 mengikut spesifikasi)

Pembelajaran yang disyorkan: "

Tutorial Video PHP"

6. Cara menggunakan

    Pengguna pelanggan memasukkan nama pengguna dan kata laluan untuk log masuk dan meminta token
  1. Selepas pelayan menerima permintaan, ia menggunakan spesifikasi JWT untuk menjana token dan mengembalikannya kepada pelanggan
  2. Klien Selepas menerima token, nyahsulitnya, sahkan ketepatan masa token (masa tamat tempoh token), dan simpannya
  3. Pelanggan meminta data dengan token
  4. Selepas pelayan menerima token dan menyahsulitnya, ia mengesahkan identiti pengguna , mengesahkan ketepatan masa, dan kemudian mengesahkan pengguna
7 🎜>

1. 无法作废已颁布的令牌(对token刷新使用期限)
2. 不易应对过期数据(支持 token 失效)
Jadi jika anda menggunakan token, maka jika token itu ditangkap, maka anda boleh meneruskan Pemalsuan menjalankan penyamaran. Jadi jika keselamatan agak tinggi, adalah disyorkan untuk menggunakan oauth2

Atas ialah kandungan terperinci Cara menggunakan token 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