// server.js
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.use(express.json());
// Your Animus API key (keep this secure!)
const ANIMUS_API_KEY = process.env.ANIMUS_API_KEY;
app.post('/api/get-animus-token', async (req, res) => {
try {
// 1. Authenticate your user (implement your own logic)
const userToken = req.headers.authorization;
if (!userToken || !isValidUserToken(userToken)) {
return res.status(401).json({ error: 'Unauthorized' });
}
// 2. Call Animus Auth Service
const response = await fetch('https://api.animusai.co/auth/generate-token', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'apikey': ANIMUS_API_KEY
}
});
if (!response.ok) {
throw new Error(`Animus auth failed: ${response.status}`);
}
const data = await response.json();
// 3. Return only the JWT token
res.json({
accessToken: data.accessToken
});
} catch (error) {
console.error('Token generation error:', error);
res.status(500).json({ error: 'Failed to generate token' });
}
});
// Your user authentication logic
function isValidUserToken(token) {
// Implement your authentication logic here
// This could check JWT tokens, session cookies, API keys, etc.
return token === 'Bearer valid-user-token'; // Simplified example
}
app.listen(3001, () => {
console.log('Token provider server running on port 3001');
});