How to Implement Seamless Token Auto‑Renewal: Frontend Refresh, Sliding Window, and Double‑Token Strategies

Token expiration can be handled with three main strategies—frontend‑driven periodic refresh, backend sliding‑window renewal, and the industry‑standard double‑token (access + refresh) scheme—each balancing implementation simplicity, user experience, and security, with the double‑token approach offering the most robust solution.

Senior Tony
Senior Tony
Senior Tony
How to Implement Seamless Token Auto‑Renewal: Frontend Refresh, Sliding Window, and Double‑Token Strategies

When interviewers ask how to handle a token that is about to expire, the expected answer is to describe automatic renewal mechanisms rather than simply re‑login or set the token to never expire.

1. Frontend‑Driven Periodic Refresh

The frontend sets a timer to check the token’s remaining lifetime (e.g., threshold 30 minutes). If the token is close to expiry, it calls a backend /refresh endpoint. The backend validates the token, issues a new one, and returns it; the frontend updates local storage. If the token is invalid, the backend returns HTTP 401 Unauthorized and forces a login. This approach is easy to implement and provides a good user experience, but the renewal logic resides on the client, so security is weak and it is suitable only for low‑risk systems.

微信图片_20260102193346_236_148.png
微信图片_20260102193346_236_148.png

2. Backend‑Controlled Sliding Window

The backend intercepts each request, checks the token’s expiry by comparing the stored last‑access time plus the token’s validity period with the current time. If the token is near expiry (e.g., less than 30 minutes remaining), the backend issues a new token and returns it; otherwise it lets the request proceed. Invalid or expired tokens trigger HTTP 401 Unauthorized. This method moves the renewal logic to the server, improving security, but it still does not protect against stolen tokens that can be repeatedly used.

微信图片_20260102193411_237_148.png
微信图片_20260102193411_237_148.png

3. Double‑Token (Access + Refresh) Scheme

This is the most widely adopted solution. After a successful login, the server issues a short‑lived Access Token (30 minutes – 2 hours) for API calls and a long‑lived Refresh Token (7 days – 30 days) used only to obtain new Access Tokens. When the Access Token expires, the client receives HTTP 401 Unauthorized, then automatically calls the /refresh endpoint with the Refresh Token. If the Refresh Token is valid, the server returns a new Access Token; the client updates its storage and retries the original request transparently. If the Refresh Token is invalid or expired, the user is forced to log in again. This approach offers strong security while keeping the user experience seamless, though it is more complex to implement.

微信图片_20260102193448_239_148.png
微信图片_20260102193448_239_148.png
图片
图片

In summary, the three token‑auto‑renewal strategies differ in where the renewal logic resides and how they balance implementation simplicity against security. The double‑token pattern is recommended for production systems that require both seamless user experience and robust protection against token theft.

backend developmentsecurityAuthenticationTokenaccess tokenRefresh Token
Senior Tony
Written by

Senior Tony

Former senior tech manager at Meituan, ex‑tech director at New Oriental, with experience at JD.com and Qunar; specializes in Java interview coaching and regularly shares hardcore technical content. Runs a video channel of the same name.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.