suchen
Was macht JWT?Jun 28, 2020 pm 04:23 PM
jwt

JWT ist derzeit eine beliebte domänenübergreifende Authentifizierungslösung. Ihr Prinzip besteht darin, Benutzerinformationen zu verschlüsseln, um ein Token zu generieren. Bei jeder Anfrage an den Server muss nur der gespeicherte Schlüssel verwendet werden Korrektheit des Tokens, und es besteht keine Notwendigkeit, es erneut zu speichern. Alle Sitzungsdaten machen den Server zustandslos.

Was macht JWT?

Die JWT-Überprüfungsmethode besteht darin, Benutzerinformationen zu verschlüsseln, um ein Token zu generieren. Jedes Mal, wenn der Server eine Anfrage anfordert, muss er nur den gespeicherten Schlüssel zur Überprüfung verwenden Die Richtigkeit des Tokens ist nicht erforderlich. Es werden keine Sitzungsdaten gespeichert und der Server wird zustandslos, was eine einfache Erweiterung ermöglicht.

Benutzerinformationen vor der Verschlüsselung, wie zum Beispiel:

{
    "username": "vist",
    "role": "admin",
    "expire": "2018-12-08 20:20:20"
}

Vom Client empfangenes Token:

7cd357af816b907f2cc9acbe9c3b4625

JWT-Struktur

A The Der Token ist in 3 Teile unterteilt:

  • Header

  • Payload

  • Signatur (Signatur)

Die drei Teile werden durch „.“ getrennt, wie zum Beispiel:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Header

JWT Der Header-Teil ist ein JSON-Objekt, das Metadaten beschreibt, normalerweise:

{
  "typ": "JWT",
  "alg": "HS256"
}

typ ist der Deklarationstyp, geben Sie „JWT“ an

alg ist der Verschlüsselungsalgorithmus, der Standardwert ist „HS256“

Load

Load (Nutzlast) ist der Datenträger, der zum Speichern der tatsächlichen Dateninformationen verwendet wird, die übertragen werden müssen, und ist außerdem ein JSON-Objekt.

JWT offiziell empfohlene Felder:

  • iss: jwt-Aussteller

  • sub: jwt für Benutzer

  • aud: die Partei, die das JWT erhält

  • Exp: die Ablaufzeit des JWT, diese Ablaufzeit muss größer sein als die Ausstellungszeit

  • nbf: Definieren Sie den Zeitpunkt, vor dem das JWT nicht verfügbar ist.

  • iat: Der Ausstellungszeitpunkt des JWT

  • jti: Die einzigartige Identität von jwt, die hauptsächlich als einmaliges Token verwendet wird, um Wiederholungsangriffe zu vermeiden.

Sie können auch benutzerdefinierte Felder verwenden, wie zum Beispiel:

{
    "username": "vist",
    "role": "admin"
}

Signatur

Der Signaturteil ist ein Vergleich der ersten beiden Teile (Header-Teil, Nutzlast), um Datenmanipulationen zu verhindern.

Folgen Sie zum Generieren den folgenden Schritten:

1. Geben Sie zuerst das Geheimnis an

2. Konvertieren Sie die Header- und Nutzlastinformationen jeweils in base64

3. Verschlüsseln Sie mit dem im Header angegebenen Algorithmus

Schließlich, Signatur = HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),secret)

Die vom Client erhaltene Signatur:

header.payload.signature

Das JWT kann auch neu verschlüsselt werden.

Empfohlenes Tutorial: „PHP

Das obige ist der detaillierte Inhalt vonWas macht JWT?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
如何使用ThinkPHP6进行JWT认证?如何使用ThinkPHP6进行JWT认证?Jun 12, 2023 pm 12:18 PM

JWT(JSONWebToken)是一种轻量级的认证和授权机制,它使用JSON对象作为安全令牌,可以在多个系统之间安全地传输用户身份信息。而ThinkPHP6是一种基于PHP语言的高效、灵活的MVC框架,它提供了许多有用的工具和功能,其中就包括JWT认证机制。在本文中,我们将介绍如何使用ThinkPHP6进行JWT认证,以保障Web应用程序的安全性和可靠

如何在PHP中使用JWT和JWE进行API身份验证和加密如何在PHP中使用JWT和JWE进行API身份验证和加密Jun 17, 2023 pm 02:42 PM

随着互联网的发展,越来越多的网站和应用需要提供API接口来进行数据交互。在这种情况下,API身份验证和加密成为了非常重要的问题。而JWT和JWE作为一种流行的身份验证和加密机制,在PHP中的应用也越来越广泛。那么,本文将介绍如何在PHP中使用JWT和JWE进行API身份验证和加密。JWT的基本概念JWT代表JSONWe

PHP中的安全JWT令牌生成与验证技术解析PHP中的安全JWT令牌生成与验证技术解析Jul 01, 2023 pm 06:06 PM

PHP中的安全JWT令牌生成与验证技术解析随着网络应用的发展,用户身份验证和授权变得越来越重要。JsonWebToken(JWT)是一种用于在网络应用中安全传输信息的开放标准(RFC7519)。在PHP开发中,使用JWT令牌来实现用户身份验证和授权已成为一种常见的做法。本文将介绍PHP中的安全JWT令牌生成与验证技术。一、JWT基础知识在了解如何生成与

PHP中的OAuth:创建一个JWT授权服务器PHP中的OAuth:创建一个JWT授权服务器Jul 28, 2023 pm 05:27 PM

PHP中的OAuth:创建一个JWT授权服务器随着移动应用和前后端分离的趋势的兴起,OAuth成为了现代Web应用中不可或缺的一部分。OAuth是一种授权协议,通过提供标准化的流程和机制,用于保护用户的资源免受未经授权的访问。在本文中,我们将学习如何使用PHP创建一个基于JWT(JSONWebTokens)的OAuth授权服务器。JWT是一种用于在网络中

Vue.js实现登录验证的完整指南(API、JWT、axios)Vue.js实现登录验证的完整指南(API、JWT、axios)Jun 09, 2023 pm 04:04 PM

Vue.js是一种流行的JavaScript框架,用于构建动态Web应用程序。实现用户登录验证是开发Web应用程序的必要部分之一。本文将介绍使用Vue.js、API、JWT和axios实现登录验证的完整指南。创建Vue.js应用程序首先,我们需要创建一个新的Vue.js应用程序。我们可以使用VueCLI或手动创建一个Vue.js应用程序。安装axiosax

深入解析JWT(JSON Web Token)的原理及用法深入解析JWT(JSON Web Token)的原理及用法Jan 10, 2023 am 10:55 AM

本篇文章给大家带来了关于JWT的相关知识,其中主要介绍了什么是JWT?JWT的原理以及用法是什么?感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。

如何使用JWT在PHP应用中实现身份验证和授权如何使用JWT在PHP应用中实现身份验证和授权Aug 03, 2023 pm 10:17 PM

如何使用JWT在PHP应用中实现身份验证和授权引言:随着互联网的快速发展,身份验证和授权在Web应用程序中变得日益重要。JSONWebToken(JWT)是一种流行的认证和授权机制,它在PHP应用中广泛应用。本文将介绍如何使用JWT在PHP应用中实现身份验证和授权,并提供代码示例,帮助读者更好地理解JWT的使用方法。一、JWT简介JSONWebTo

Golang开发:实现基于JWT的用户身份验证Golang开发:实现基于JWT的用户身份验证Sep 20, 2023 am 08:31 AM

Golang开发:实现基于JWT的用户身份验证随着互联网的快速发展,用户身份验证成为了Web应用中至关重要的一部分。传统的基于Cookie的身份验证方式已经逐渐被基于JWT(JSONWebToken)的身份验证方式所取代。JWT是一种轻量级的身份验证标准,它允许服务端生成一个加密的令牌,并将该令牌发送给客户端,客户端发送请求的时候将令牌放入Authori

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools