Documentation Index
Fetch the complete documentation index at: https://mintlify.com/scalekit-inc/developer-docs/llms.txt
Use this file to discover all available pages before exploring further.
Example code to help you implement Scalekit authentication.
Full applications
Next.js + Scalekit
Complete Next.js application with:
- User authentication
- Session management
- Protected routes
- SSO integration
View on GitHub
Express.js + Scalekit
Express backend with:
- OAuth flows
- Token management
- API protection
- Webhook handling
View on GitHub
Python Flask + Scalekit
Flask application with:
- Authentication flows
- Session cookies
- Middleware
- Database integration
View on GitHub
Code snippets
Authentication middleware
async function requireAuth(req, res, next) {
const accessToken = req.cookies.accessToken;
if (!accessToken) {
return res.redirect('/login');
}
try {
const isValid = await scalekit.validateAccessToken(accessToken);
if (!isValid) {
return res.redirect('/login');
}
next();
} catch (error) {
return res.redirect('/login');
}
}
app.get('/dashboard', requireAuth, (req, res) => {
res.render('dashboard');
});
Token refresh
async function refreshTokenMiddleware(req, res, next) {
const { accessToken, refreshToken } = req.cookies;
const isValid = await scalekit.validateAccessToken(accessToken);
if (!isValid && refreshToken) {
const authResult = await scalekit.refreshAccessToken(refreshToken);
res.cookie('accessToken', authResult.accessToken);
res.cookie('refreshToken', authResult.refreshToken);
}
next();
}
Webhook handler
app.post('/webhooks', async (req, res) => {
const signature = req.headers['x-scalekit-signature'];
if (!verifySignature(req.body, signature)) {
return res.status(401).send('Invalid signature');
}
const event = req.body;
switch (event.type) {
case 'user.authenticated':
await handleUserAuthenticated(event.data);
break;
case 'user.created':
await handleUserCreated(event.data);
break;
}
res.status(200).send('OK');
});
Next steps
API Reference
API documentation