1.0.0 • Published 1 year ago
@isephix/tokenshield v1.0.0
Token Proxy
A minimal, dependency-free library for secure API token management in frontend JavaScript.
Features
- Two independent approaches:
- Server Proxy: Maximum compatibility and control
- Service Worker: Serverless solution
- No external dependencies
- TypeScript support
- Simple API
Installation
npm install tokenshieldUsage
Server Proxy
// Server-side
import { ProxyServer } from 'tokenshield';
const server = new ProxyServer();
server.listen(3000);
// Client-side
const registerToken = async (token) => {
const response = await fetch('http://localhost:3000/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token })
});
return response.json();
};
const getTempToken = async (id) => {
const response = await fetch('http://localhost:3000/temp', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id })
});
return response.json();
};
// Usage
const { id } = await registerToken('your-api-token');
const { token } = await getTempToken(id);
// Make API requests
fetch('https://api.example.com/data', {
headers: { 'x-temp-token': token }
});Service Worker
import { ServiceWorkerProxy } from 'tokenshield';
const proxy = new ServiceWorkerProxy();
await proxy.register();
await proxy.setToken('your-api-token');
// Use regular fetch - SW will intercept
const data = await fetch('https://api.example.com/data');API Documentation
ProxyServer
constructor(options?: TokenProxyOptions)listen(port: number = 3000): void
ServiceWorkerProxy
constructor(options?: { swPath?: string })register(): Promise<ServiceWorkerRegistration>setToken(token: string, id?: string): Promise<void>fetch(url: string, options?: RequestInit): Promise<Response>
License
MIT
1.0.0
1 year ago