TypeScript SDK
Authentication
API keys, token providers, and OAuth integration patterns
Authentication
Echo supports multiple authentication methods to fit different use cases, from simple API keys to OAuth2 flows.
API Key Authentication
Direct API Key
Simplest method for server-side applications:
import { EchoClient } from '@merit-systems/echo-typescript-sdk';
const echo = new EchoClient({
apiKey: 'your-api-key'
});
ApiKeyTokenProvider
For more control over token management:
import { EchoClient, ApiKeyTokenProvider } from '@merit-systems/echo-typescript-sdk';
const tokenProvider = new ApiKeyTokenProvider('your-api-key');
const echo = new EchoClient({
tokenProvider
});
OAuth Token Provider
For dynamic token management (used by React/Next.js SDKs):
import { EchoClient, OAuthTokenProvider } from '@merit-systems/echo-typescript-sdk';
const tokenProvider = new OAuthTokenProvider({
getTokenFn: async () => {
// Return current access token
return getCurrentAccessToken();
},
refreshTokenFn: async () => {
// Refresh and return new token
return await refreshAccessToken();
}
});
const echo = new EchoClient({ tokenProvider });
Token Provider Interface
All token providers implement the TokenProvider
interface:
import type { TokenProvider } from '@merit-systems/echo-typescript-sdk';
TokenProvider
Prop | Type | Default |
---|---|---|
getAccessToken | () => Promise<string | null> | - |
refreshToken | () => Promise<string | void> | - |
onRefreshError? | ((error: Error) => void) | - |
Creating Custom Token Providers
import type { TokenProvider } from '@merit-systems/echo-typescript-sdk';
class CustomTokenProvider implements TokenProvider {
async getToken(): Promise<string | null> {
// Your custom token retrieval logic
return await getTokenFromCustomSource();
}
async refreshToken(): Promise<string | null> {
// Your custom token refresh logic
return await refreshTokenFromCustomSource();
}
}
const echo = new EchoClient({
tokenProvider: new CustomTokenProvider()
});