mrellerm/jwt-refresh-token-bundle
A Symfony bundle that adds JWT refresh token support to your authentication flow, letting clients exchange long-lived refresh tokens for new access tokens. Includes token rotation, Doctrine-backed storage, and integration with LexikJWTAuthenticationBundle.
Consider it when:
gesdinet/jwt-refresh-token-bundle and need to understand or port device binding.Look elsewhere when:
tymon/jwt-auth with a custom refresh guard. This package is not a fit at all.gesdinet/jwt-refresh-token-bundle (or Lexik + a custom refresh flow) and implement fingerprinting as a thin listener. You inherit Symfony 5/6/7 and PHP 8 compatibility, CVE response, and community review for free.Executives: This is not a purchase recommendation. It's a zero-star, zero-dependent, unmaintained fork of a popular Symfony auth bundle — the value is the idea, not the artifact. The idea (bind refresh tokens to a device so stolen tokens are useless) is worth adopting; the code is worth roughly one to three engineer-days to reimplement on a maintained library. Putting an abandoned fork into the login path would be a supply-chain risk with no offsetting benefit.
Engineering: The upstream gesdinet bundle issues DB-backed refresh tokens that are reusable until TTL, which means a leaked token stays valid for its full lifetime from anywhere. This fork adds a fingerprint hash checked at refresh time — a small subscriber plus a column. Take that diff, apply it to the maintained upstream, and pair it with token rotation and reuse detection, which is the stronger control. Prefer soft binding (log anomalies, trigger step-up auth) over hard rejection, and avoid IP-only fingerprints; they will generate support tickets from mobile and corporate-NAT users.
The one-line version: steal the pattern, not the package.
How can I help you explore Laravel packages today?