mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-09-19 09:40:12 +00:00
e05700c2f0a393ff680f1d90ba2286896a5594f7
Replace the {user_id, ip} claim pair with {keyId, uid}:
- keyId is a 32-byte random id that points to a row in the new
jwt_sessions table holding the real user id, bound IP, UA hash,
TokenVersion and expiry.
- uid is the user id encoded through pkg/idcodec; mismatch between
claim uid and session.UserID trips WAF block on the caller IP.
- identityHandler now rejects unknown/revoked/expired sessions, IP
drift and stale TokenVersion. Refresh updates session.ExpiresAt.
User.TokenVersion bumps on password change and revokes outstanding
sessions, so a leaked JWT secret alone is no longer enough to forge
a token. JWTSession rows are GC'd every 10 minutes (expired + grace
or revoked >24h). OAuth2 callback shares the same issue path.
Includes regression tests for happy path, mismatched claim uid,
revoked session, TokenVersion bump, IP drift and unknown keyId.
Co-authored-by: cloudcode <cloudcode@users.noreply.github.com>
LOGO designed by 熊大 .
:trollface: Nezha Monitoring: Self-hostable, lightweight, servers and websites monitoring and O&M tool.
Supports monitoring system status, HTTP (SSL certificate change, upcoming expiration, expired), TCP, Ping and supports push alerts, run scheduled tasks and web terminal.
>> Telegram Channel: 哪吒监控(中文通知频道)
>> Telegram Group: Nezha Monitoring Global (English Only), 哪吒监控(中文群组)
>> Use Cases | 我们的用户 (Google)
User Guide
Contributing
Translation
Is Nezha not in your language, or the translation is incorrect or incomplete? Get involved in the translations on Hosted Weblate.
Screenshots
| 用户前台 @hamster1963 | 管理后台 @nezhahq |
|---|---|
![]() |
![]() |
| hamster1963/nezha-dash | nezhahq/admin-frontend |
add your theme to service/singleton/frontend-templates.yaml
Contributors
Special Thanks
- IPInfo for providing an accurate GeoIP Database.
Star History
Languages
Go
99.3%
Shell
0.5%
PowerShell
0.2%

