Installation
bash
npm install @zalt/core
Initialize Client
typescript
import { ZaltClient } from '@zalt/core';
const zalt = new ZaltClient({
realmId: process.env.ZALT_REALM_ID,
apiUrl: 'https://api.zalt.io',
});Express Middleware
typescript
import express from 'express';
import { ZaltClient } from '@zalt/core';
const app = express();
const zalt = new ZaltClient({ realmId: process.env.ZALT_REALM_ID });
// Auth middleware
const requireAuth = async (req, res, next) => {
const token = req.headers.authorization?.replace('Bearer ', '');
if (!token) {
return res.status(401).json({ error: 'Unauthorized' });
}
try {
const user = await zalt.verifyToken(token);
req.user = user;
next();
} catch (error) {
return res.status(401).json({ error: 'Invalid token' });
}
};
// Protected route
app.get('/api/profile', requireAuth, (req, res) => {
res.json({ user: req.user });
});
app.listen(3000);Login Endpoint
typescript
app.post('/api/login', async (req, res) => {
const { email, password } = req.body;
try {
const result = await zalt.login({ email, password });
if (result.mfaRequired) {
return res.json({
mfaRequired: true,
sessionId: result.sessionId,
methods: result.mfaMethods,
});
}
res.json({
user: result.user,
accessToken: result.tokens.accessToken,
refreshToken: result.tokens.refreshToken,
});
} catch (error) {
res.status(401).json({ error: 'Invalid credentials' });
}
});