๐ go-jwt - Awesome Go Library for Authentication and Authorization

JWT authentication package providing access tokens and refresh tokens with fingerprinting, Redis storage, and automatic refresh capabilities
Detailed Description of go-jwt
[!NOTE] This README was generated by SKILL, get the ZH version from here.
go-jwt
ECDSA and Redis-backed JWT authentication library with full token lifecycle management and device fingerprint binding.
Table of Contents
Features
go get github.com/pardnchiu/go-jwtยท Documentation
Redis-Driven Token Lifecycle
Integrates Redis for complete Access Token and Refresh ID lifecycle management, including creation, verification, refresh, and revocation. Ensures atomicity of multi-key operations through Redis Transaction Pipelines and prevents concurrent Refresh Token race conditions with distributed locks.
Device Fingerprint Binding
Binds tokens to the user's device environment (OS, browser, device type) via SHA-256 hashing. Even if a token is stolen, attackers cannot use it on a different device, fundamentally preventing token hijacking attacks.
Dual-Framework Middleware
Provides plug-and-play middleware for both Gin and standard net/http, automatically handling token verification and expiration refresh flows. Developers retrieve authenticated user data directly from the context without manual token lifecycle intervention.
Architecture
graph TB
REQ[HTTP Request] --> MW[Middleware<br/>Gin / net/http]
MW --> V[Verify]
V -->|Valid Token| AUTH[Return Auth Data]
V -->|Expired Token| RF[Refresh]
V -->|No Token| DENY[Deny Access]
RF -->|Valid Refresh ID| SIGN[Re-sign Access Token]
RF -->|Threshold Exceeded| CREATE[Full Token Rebuild]
RF -->|Invalid| DENY
SIGN --> REDIS[(Redis)]
CREATE --> REDIS
V --> FP[Device Fingerprint Check]
FP --> REDIS
File Structure
go-jwt/
โโโ instance.go # Initialization and config validation
โโโ create.go # Token creation and JWT signing
โโโ verify.go # Token verification and JWT parsing
โโโ refresh.go # Token refresh with distributed lock
โโโ revoke.go # Token revocation
โโโ middleware.go # Gin / net/http middleware
โโโ cookie.go # Cookie management
โโโ pem.go # ECDSA key handling
โโโ refreshData.go # Refresh ID and device fingerprint
โโโ utility.go # Helper functions
โโโ uuid.go # UUID v4 generation
โโโ type.go # Type definitions
โโโ jwt_test.go # Unit tests
โโโ go.mod
License
This project is licensed under the MIT LICENSE.
Author
้ฑๆฌๅน Pardn Chiu
Stars
ยฉ๏ธ 2025 ้ฑๆฌๅน Pardn Chiu