Refreshing Session Tokens
Extend session validity by refreshing tokens using ductape.sessions.refresh().
Quick Example
- TypeScript
- Java
- Go
- .NET
const newTokens = await ductape.sessions.refresh({
tag: 'user-session',
refreshToken: 'your-refresh-token',
});
console.log(newTokens.token); // New session token
console.log(newTokens.refreshToken); // New refresh token
Map<String, Object> newTokens = ductape.sessions.refresh(Map.of(
"tag", "user-session",
"refreshToken", "your-refresh-token"
));
System.out.println(newTokens.token); // New session token
System.out.println(newTokens.refreshToken); // New refresh token
newTokens := client.sessions.refresh({
"tag": "user-session",
"refreshToken": "your-refresh-token",
});
fmt.Println(newTokens.token); // New session token
fmt.Println(newTokens.refreshToken); // New refresh token
var newTokens = await ductape.sessions.refresh({
["tag"] = "user-session",
["refreshToken"] = "your-refresh-token",
});
Console.WriteLine(newTokens.token); // New session token
Console.WriteLine(newTokens.refreshToken); // New refresh token
How It Works
Use the refresh token (received when creating or refreshing a session) to get new tokens without requiring the user to re-authenticate.
Examples
Basic refresh
- TypeScript
- Java
- Go
- .NET
const result = await ductape.sessions.refresh({
tag: 'checkout-session',
refreshToken: 'eueywuwjwmwmw:zyx456cba321...'
});
// Store the new tokens
const { token, refreshToken } = result;
Map<String, Object> result = ductape.sessions.refresh(Map.of(
"tag", "checkout-session",
"refreshToken", "eueywuwjwmwmw:zyx456cba321..."
));
// Store the new tokens
Map<String, Object> Map.of( token, refreshToken ) = result;
result := client.sessions.refresh({
"tag": "checkout-session",
"refreshToken": "eueywuwjwmwmw:zyx456cba321..."
});
// Store the new tokens
const { token, refreshToken } = result;
var result = await ductape.sessions.refresh({
["tag"] = "checkout-session",
["refreshToken"] = "eueywuwjwmwmw:zyx456cba321..."
});
// Store the new tokens
var { token, refreshToken } = result;
Auto-refresh in frontend
- TypeScript
- Java
- Go
- .NET
async function refreshAuth() {
const storedRefreshToken = localStorage.getItem('refreshToken');
const result = await ductape.sessions.refresh({
tag: 'user-session',
refreshToken: storedRefreshToken
});
localStorage.setItem('token', result.token);
localStorage.setItem('refreshToken', result.refreshToken);
return result.token;
}
async function refreshAuth() Map.of(
Map<String, Object> storedRefreshToken = localStorage.getItem('refreshToken');
Map<String, Object> result = ductape.sessions.refresh(Map.of(
"tag", "user-session",
refreshToken: storedRefreshToken
));
localStorage.setItem('token', result.token);
localStorage.setItem('refreshToken', result.refreshToken);
return result.token;
)
async function refreshAuth() {
storedRefreshToken := localStorage.getItem('refreshToken');
result := client.sessions.refresh({
"tag": "user-session",
refreshToken: storedRefreshToken
});
localStorage.setItem('token', result.token);
localStorage.setItem('refreshToken', result.refreshToken);
return result.token;
}
async function refreshAuth() {
var storedRefreshToken = localStorage.getItem('refreshToken');
var result = await ductape.sessions.refresh({
["tag"] = "user-session",
refreshToken: storedRefreshToken
});
localStorage.setItem('token', result.token);
localStorage.setItem('refreshToken', result.refreshToken);
return result.token;
}
Response
{
"token": "new-session-token...",
"refreshToken": "new-refresh-token..."
}
| Field | Description |
|---|---|
token | New session token for subsequent requests |
refreshToken | New refresh token for the next refresh |
Reference
Input
- TypeScript
- Java
- Go
- .NET
interface RefreshSessionInput {
product: string; // Product tag
env: string; // Environment (dev, staging, prd)
tag: string; // Session tag
refreshToken: string; // Refresh token from previous session
}
interface RefreshSessionInput Map.of(
product: string; // Product tag
env: string; // Environment (dev, staging, prd)
tag: string; // Session tag
refreshToken: string; // Refresh token from previous session
)
interface RefreshSessionInput {
product: string; // Product tag
env: string; // Environment (dev, staging, prd)
tag: string; // Session tag
refreshToken: string; // Refresh token from previous session
}
interface RefreshSessionInput {
product: string; // Product tag
env: string; // Environment (dev, staging, prd)
tag: string; // Session tag
refreshToken: string; // Refresh token from previous session
}