refresh_session
Extend AWS Cognito user session validity by renewing authentication tokens without requiring re-login.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.ts:548-621 (handler)The handler function for the 'refresh_session' tool. It retrieves the current Cognito user, gets the current session to extract the refresh token, and calls cognitoUser.refreshSession to obtain new access and ID tokens.async ({}) => { return new Promise((resolve, reject) => { const cognitoUser = userPool.getCurrentUser(); if (!cognitoUser) { resolve({ content: [ { type: "text" as const, text: "No user currently signed in", } ] }); return; } cognitoUser.getSession((err: Error | null, _session: CognitoUserSession) => { if (err) { reject({ content: [ { type: "text" as const, text: `Error getting session: ${err.message}`, } ] }); return; } const refreshToken = _session.getRefreshToken(); cognitoUser.refreshSession(refreshToken, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to refresh session: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "Session refreshed successfully", }, { type: "text" as const, text: `New Access Token: ${result.getAccessToken().getJwtToken()}`, }, { type: "text" as const, text: `New ID Token: ${result.getIdToken().getJwtToken()}`, }, { type: "text" as const, text: `Token Expiration: ${new Date(result.getAccessToken().getExpiration() * 1000).toISOString()}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); }
- index.ts:544-622 (registration)Registration of the 'refresh_session' tool using server.tool(name, inputSchema, handler).server.tool( "refresh_session", { }, async ({}) => { return new Promise((resolve, reject) => { const cognitoUser = userPool.getCurrentUser(); if (!cognitoUser) { resolve({ content: [ { type: "text" as const, text: "No user currently signed in", } ] }); return; } cognitoUser.getSession((err: Error | null, _session: CognitoUserSession) => { if (err) { reject({ content: [ { type: "text" as const, text: `Error getting session: ${err.message}`, } ] }); return; } const refreshToken = _session.getRefreshToken(); cognitoUser.refreshSession(refreshToken, (err, result) => { if (err) { reject({ content: [ { type: "text" as const, text: `Failed to refresh session: ${err.message}`, }, { type: "text" as const, text: `Error code: ${(err as any).code || 'Unknown'}`, } ] }); return; } resolve({ content: [ { type: "text" as const, text: "Session refreshed successfully", }, { type: "text" as const, text: `New Access Token: ${result.getAccessToken().getJwtToken()}`, }, { type: "text" as const, text: `New ID Token: ${result.getIdToken().getJwtToken()}`, }, { type: "text" as const, text: `Token Expiration: ${new Date(result.getAccessToken().getExpiration() * 1000).toISOString()}`, }, { type: "text" as const, text: `Time: ${new Date().toISOString()}`, } ] }); }); }); }); } )
- index.ts:546-547 (schema)Empty input schema indicating the tool requires no parameters.{ },