<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>JWTShield — JWT, OIDC, and JWKS engineering</title><description>Field notes on JWT validation, OIDC config drift, JWKS rotation, and catching auth regressions before they ship to prod.</description><link>https://jwtshield.com/</link><language>en-us</language><item><title>Three JWT bugs that ship to prod silently — and the 5-line CI test that catches them</title><link>https://jwtshield.com/blog/3-jwt-bugs-that-ship-to-prod-silently/</link><guid isPermaLink="true">https://jwtshield.com/blog/3-jwt-bugs-that-ship-to-prod-silently/</guid><description>Three concrete failure modes that take down OIDC in production: JWKS rotation without overlap, wrong audience claims, and issuer config drift. Reproduction code, the one HTTP call that catches each, and the 5-line GitHub Actions step that runs the whole regression suite.</description><pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate><category>CI regression</category><category>jwt</category><category>jwks</category><category>oidc</category><category>ci-cd</category><category>devsecops</category><category>regression</category><category>github-actions</category><author>JWTShield team</author></item><item><title>The alg=none JWT vulnerability, with code that exploits it and a 5-line fix</title><link>https://jwtshield.com/blog/alg-none-jwt-vulnerability/</link><guid isPermaLink="true">https://jwtshield.com/blog/alg-none-jwt-vulnerability/</guid><description>Why the alg=none JWT bug class refuses to die, with working exploit code, the right way to refuse it, and the one HTTP call that catches every variant.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><category>Attack class</category><category>jwt</category><category>jws</category><category>attack</category><category>rfc7515</category><author>JWTShield team</author></item><item><title>Validating Auth0 JWTs in production: the 8 checks Auth0&apos;s docs don&apos;t tell you</title><link>https://jwtshield.com/blog/auth0-jwt-validation-production/</link><guid isPermaLink="true">https://jwtshield.com/blog/auth0-jwt-validation-production/</guid><description>Auth0&apos;s quickstart shows signature verification. Real production needs eight checks. Here is each one, why it exists, and the failure mode it prevents.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><category>IdP integration</category><category>auth0</category><category>oidc</category><category>jwks</category><category>jwt</category><category>rs256</category><author>JWTShield team</author></item><item><title>Express JWT middleware in 2026: why express-jwt still has footguns and what to wire instead</title><link>https://jwtshield.com/blog/express-jwt-middleware-2026/</link><guid isPermaLink="true">https://jwtshield.com/blog/express-jwt-middleware-2026/</guid><description>express-jwt&apos;s defaults still let alg=none through on some configurations. Here is the safe handcrafted middleware in 60 lines, and the one-line replacement that off-loads verification to a service.</description><pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate><category>Framework</category><category>express</category><category>node</category><category>middleware</category><category>jwt</category><author>JWTShield team</author></item></channel></rss>