JWT 是干什么?
JWT是目前流行的跨域认证解决方案,其原理是将用户信息通过加密生成Token,每次请求服务端只需要使用保存的密钥验证Token的正确性,进而不用再保存任何Session数据,使服务端变得无状态。
jwt验证方式是将用户信息通过加密生成token,每次请求服务端只需要使用保存的密钥验证token的正确性,不用再保存任何session数据了,进而服务端变得无状态,容易实现拓展。
加密前的用户信息,如:
{ "username": "vist", "role": "admin", "expire": "2018-12-08 20:20:20" }
客户端收到的token:
7cd357af816b907f2cc9acbe9c3b4625
JWT 结构
一个token分为3部分:
头部(header)
载荷(payload)
签名(signature)
3个部分用“.”分隔,如:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
头部
JWT的头部分是一个JSON对象,描述元数据,通常是:
{ "typ": "JWT", "alg": "HS256" }
typ 为声明类型,指定 "JWT"
alg 为加密的算法,默认是 "HS256"
载荷
载荷(payload)是数据的载体,用来存放实际需要传递的数据信息,也是一个JSON对象。
JWT官方推荐字段:
iss: jwt签发者
sub: jwt所面向的用户
aud: 接收jwt的一方
exp: jwt的过期时间,这个过期时间必须要大于签发时间
nbf: 定义在什么时间之前,该jwt都是不可用的.
iat: jwt的签发时间
jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
也可以使用自定义字段,如:
{ "username": "vist", "role": "admin" }
签名
签名部分是对前两部分(头部,载荷)的签名,防止数据篡改。
按下列步骤生成:
1、先指定密钥(secret)
2、把头部(header)和载荷(payload)信息分别base64转换
3、使用头部(header)指定的算法加密
最终,签名(signature) = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)
客户端得到的签名:
header.payload.signature
也可以对JWT进行再加密。
推荐教程:《PHP》
Atas ialah kandungan terperinci JWT 是干什么?. 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



Dengan pembangunan Internet, semakin banyak laman web dan aplikasi perlu menyediakan antara muka API untuk interaksi data. Dalam kes ini, pengesahan dan penyulitan API menjadi isu yang sangat penting. Sebagai mekanisme pengesahan dan penyulitan yang popular, JWT dan JWE semakin banyak digunakan dalam PHP. Nah, artikel ini akan menerangkan cara menggunakan JWT dan JWE untuk pengesahan dan penyulitan API dalam PHP. Konsep asas JWT JWT adalah singkatan kepada JSONWe

JWT (JSONWebToken) ialah mekanisme pengesahan dan kebenaran ringan yang menggunakan objek JSON sebagai token keselamatan untuk menghantar maklumat identiti pengguna dengan selamat antara berbilang sistem. ThinkPHP6 ialah rangka kerja MVC yang cekap dan fleksibel berdasarkan bahasa PHP Ia menyediakan banyak alat dan fungsi yang berguna, termasuk mekanisme pengesahan JWT. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ThinkPHP6 untuk pengesahan JWT untuk memastikan keselamatan dan kebolehpercayaan aplikasi web

Analisis Teknologi Penjanaan dan Pengesahan Token JWT Selamat dalam PHP Dengan pembangunan aplikasi rangkaian, pengesahan dan kebenaran pengguna menjadi semakin penting. JsonWebToken (JWT) ialah standard terbuka (RFC7519) untuk menghantar maklumat dengan selamat dalam aplikasi web. Dalam pembangunan PHP, ia telah menjadi amalan biasa untuk menggunakan token JWT untuk pengesahan dan kebenaran pengguna. Artikel ini akan memperkenalkan penjanaan token JWT selamat dan teknologi pengesahan dalam PHP. 1. Pengetahuan asas JWT dalam memahami cara menjana dan

OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT Dengan peningkatan aplikasi mudah alih dan trend pemisahan bahagian hadapan dan belakang, OAuth telah menjadi bahagian yang amat diperlukan dalam aplikasi web moden. OAuth ialah protokol kebenaran yang melindungi sumber pengguna daripada capaian yang tidak dibenarkan dengan menyediakan proses dan mekanisme piawai. Dalam artikel ini, kita akan belajar cara membuat pelayan kebenaran OAuth berasaskan JWT (JSONWebTokens) menggunakan PHP. JWT ialah sejenis

Vue.js ialah rangka kerja JavaScript yang popular untuk membina aplikasi web dinamik. Melaksanakan pengesahan log masuk pengguna adalah salah satu bahagian yang diperlukan untuk membangunkan aplikasi web. Artikel ini akan memperkenalkan panduan lengkap untuk melaksanakan pengesahan log masuk menggunakan Vue.js, API, JWT dan axios. Mencipta Aplikasi Vue.js Mula-mula, kita perlu mencipta aplikasi Vue.js baharu. Kita boleh mencipta aplikasi Vue.js menggunakan VueCLI atau secara manual. Pasang axiosax

Artikel ini membawakan anda pengetahuan yang berkaitan tentang JWT Ia terutamanya memperkenalkan apa itu JWT? Apakah prinsip dan penggunaan JWT? Bagi yang berminat, mari kita lihat di bawah ini semoga bermanfaat untuk semua.

Mula-mula kita perlu mengimport pakej jwt yang digunakan: io.jsonwebtokenjjwt0.8.0com.auth0java-jwt3.2.0 1. Sediakan LoginUser (simpan maklumat pengguna log masuk) dan JwtUserLoginUser.javapublicclassLoginUser{privateIntegeruserId;privateStringusernameString.private set;privateStringuserpassword;privategenerate; ..}JwtUser.javaimp

Pembangunan Golang: Melaksanakan pengesahan pengguna berasaskan JWT Dengan perkembangan pesat Internet, pengesahan pengguna telah menjadi bahagian penting dalam aplikasi web. Kaedah pengesahan berasaskan kuki tradisional telah digantikan secara beransur-ansur dengan kaedah pengesahan berasaskan JWT (JSONWebToken). JWT ialah piawaian pengesahan ringan yang membolehkan pelayan menjana token yang disulitkan dan menghantar token kepada klien. Pelanggan meletakkan token ke dalam Authori apabila menghantar permintaan.
