Performance: Refresh token concept
This concept affects the responsiveness and load on the server and client by managing authentication token renewal without frequent full logins.
Jump into concepts and practice - no test required
app.post('/refresh-token', (req, res) => { const refreshToken = req.body.refreshToken; if (!refreshToken || !isValidRefreshToken(refreshToken)) { return res.status(403).send('Forbidden'); } const newAccessToken = generateAccessToken(refreshToken.user); res.json({ accessToken: newAccessToken }); });
app.get('/data', (req, res) => { const token = req.headers.authorization; if (!token || !isValid(token)) { return res.status(401).send('Unauthorized'); } // No refresh token, user must login again frequently fetchData().then(data => res.json(data)); });
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| No refresh token, frequent full login | Minimal | 0 | 0 | [X] Bad |
| Using refresh token for silent renewal | Minimal | 0 | 0 | [OK] Good |
refresh token in an Express app using authentication?res.setHeader(name, value) to set response headers.app.post('/token', (req, res) => {
const refreshToken = req.body.token;
if (!refreshToken) return res.status(401).send('No token');
if (refreshToken !== 'validtoken') return res.status(403).send('Invalid token');
res.json({ accessToken: 'newAccessToken123' });
});refreshToken is missing, returns 401; if invalid, returns 403.app.post('/refresh', (req, res) => {
const token = req.body.refreshToken;
if (!token) res.status(401).send('Missing token');
if (token !== 'secret') res.status(403).send('Forbidden');
res.json({ accessToken: 'newToken' });
});return, code continues after sending response, causing errors.return after res.status(...).send(...) prevents multiple responses.