• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

markitosgv / JWTRefreshTokenBundle / 30887016421
100%

Build:
DEFAULT BRANCH: master
Ran 04 Aug 2026 07:15AM UTC
Jobs 1
Files 48
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Aug 2026 07:14AM UTC coverage: 97.203% (-0.3%) from 97.484%
30887016421

push

github

shakaran
feat: store the hash of a refresh token instead of the token

A refresh token gets its holder back into an account without a password, so a
copy of the table was a copy of everybody's credentials, next to the passwords
that are hashed for exactly that reason.

hash_tokens stores sha256$ and the hash. SHA-256 rather than a slow hash because
64 random bytes are not guessable, and deterministic because a refresh request
carries the token and nothing else, so the row has to be findable from it.

The recipe that has been going around since 2021 puts the token back on the
entity after saving so it can be returned to the client, which leaves it managed
and dirty: the next flush in the request writes the token back in the clear. I
reproduced that with the published subscriber. Here the value is read before
saving instead, so nothing has to be restored and there is nothing to write back.

It decorates the manager, so it wraps whichever backend is in use, a manager of
your own included. Turning it on signs nobody out: a token stored before is taken
as it is and rewritten hashed when used, until accept_stored_in_the_clear is
turned off.

Off by default, since getRefreshToken() then returns the stored hash.

1251 of 1287 relevant lines covered (97.2%)

18.27 hits per line

Coverage Regressions

Lines Coverage ∆ File
4
91.84
0.53% src/DependencyInjection/GesdinetJWTRefreshTokenExtension.php
Jobs
ID Job ID Ran Files Coverage
1 30887016421.1 04 Aug 2026 07:15AM UTC 48
97.2
GitHub Action Run
Source Files on build 30887016421
  • Tree
  • List 48
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30887016421
  • c2b0a59a on github
  • Prev Build on master (#30882697521)
  • Next Build on master (#30890657843)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc