Documentation Index
Fetch the complete documentation index at: https://docs.payven.com.tr/llms.txt
Use this file to discover all available pages before exploring further.
Access token’ın süresi dolduğunda kullanıcıyı yeniden login’e yönlendirmek yerine refresh token kullanarak sessizce yenileyebilirsiniz.
Endpoint
POST /api/v1/auth/{slug}/refresh
İstek
curl -X POST https://identity.payven.com.tr/api/v1/auth/acme-bank/refresh \
-H "Content-Type: application/json" \
-d '{
"refreshToken": "eyJhbGciOiJIUzUxMiIs..."
}'
Yanıt
{
"isSuccess": true,
"data": {
"accessToken": "yeni-access-token...",
"refreshToken": "yeni-refresh-token...",
"expiresIn": 3600,
"refreshExpiresIn": 1800,
"tokenType": "Bearer"
}
}
Yenileme sonrası hem access hem refresh token yenilenir. Eski refresh token bir kez kullanıldıktan sonra geçersiz olur (rotation).
Önerilen yenileme stratejisi
Token süresi dolmadan 30 saniye önce proaktif yenileme yapın:
class TokenManager {
constructor() {
this.accessToken = null;
this.refreshToken = null;
this.expiresAt = 0;
}
async getValidToken() {
const bufferMs = 30_000;
if (Date.now() < this.expiresAt - bufferMs) {
return this.accessToken;
}
await this.refresh();
return this.accessToken;
}
async refresh() {
const res = await fetch(`${BASE}/auth/${SLUG}/refresh`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ refreshToken: this.refreshToken }),
});
const { data } = await res.json();
this.accessToken = data.accessToken;
this.refreshToken = data.refreshToken;
this.expiresAt = Date.now() + data.expiresIn * 1000;
}
}
Hata yanıtları
| HTTP | code | Anlam |
|---|
401 | INVALID_REFRESH_TOKEN | Refresh token geçersiz veya kullanılmış |
401 | REFRESH_TOKEN_EXPIRED | Refresh token süresi dolmuş — yeniden login gerekli |
REFRESH_TOKEN_EXPIRED aldığınızda kullanıcıyı login ekranına yönlendirin.