curl -X GET https://api.demet.com/intern/refresh \
-b cookies.txt \
-c cookies.txt
{
"message": "Access token renovado"
}
Obtain a new access token using a refresh token
curl -X GET https://api.demet.com/intern/refresh \
-b cookies.txt \
-c cookies.txt
{
"message": "Access token renovado"
}
refresh_token cookie. This cookie is automatically set during login.
refresh_token cookie.
httpOnly: falsesecure: truesameSite: nonecurl -X GET https://api.demet.com/intern/refresh \
-b cookies.txt \
-c cookies.txt
{
"message": "Access token renovado"
}
Show Token Refresh Process Details
refresh_token from cookies// Token payload structure
{
"id_employee": 123,
"role": "Administrador"
}
class ApiClient {
async request(url, options = {}) {
try {
// Try the original request
let response = await fetch(url, {
...options,
credentials: 'include'
});
// If unauthorized, try refreshing the token
if (response.status === 401) {
console.log('Access token expired, refreshing...');
const refreshResponse = await fetch(
'https://api.demet.com/intern/refresh',
{ method: 'GET', credentials: 'include' }
);
if (refreshResponse.ok) {
console.log('Token refreshed, retrying request...');
// Retry the original request with new token
response = await fetch(url, {
...options,
credentials: 'include'
});
} else {
// Refresh failed, redirect to login
console.log('Refresh failed, redirecting to login...');
window.location.href = '/login';
return;
}
}
return response;
} catch (error) {
console.error('Request failed:', error);
throw error;
}
}
}
// Usage
const client = new ApiClient();
const response = await client.request('https://api.demet.com/intern/get');
const data = await response.json();
| Status Code | Error | Action |
|---|---|---|
| 401 | Refresh token not found | User must log in again |
| 400 | Token invalid or expired | User must log in again |
| 200 | Success | Continue with new access token |