Integration Guide
Node.js / Express
Complete guide for integrating Node.js applications with CAS SSO
3 min setup
Easy
Node 18+
1. Installation
Terminal
npm install @cas-system/node-client jsonwebtoken axios
2. Configuration
.env
CAS_SERVER_URL=https://your-cas-server.com
CAS_CLIENT_ID=your_client_id
CAS_CLIENT_SECRET=your_client_secret
CAS_CALLBACK_URL=https://your-app.com/cas/callback
config/cas.js
module.exports = {
serverUrl: process.env.CAS_SERVER_URL,
clientId: process.env.CAS_CLIENT_ID,
clientSecret: process.env.CAS_CLIENT_SECRET,
callbackUrl: process.env.CAS_CALLBACK_URL,
};
3. Express Middleware
middleware/cas-auth.js
const axios = require('axios');
const config = require('../config/cas');
async function casAuth(req, res, next) {
const token = req.headers.authorization?.split(' ')[1];
if (!token) {
return res.status(401).json({ error: 'Token required' });
}
try {
const { data } = await axios.post(
`${config.serverUrl}/api/sso/validate`,
{ token, client_id: config.clientId, client_secret: config.clientSecret }
);
req.user = data.user;
next();
} catch (err) {
res.status(401).json({ error: 'Invalid token' });
}
}
module.exports = casAuth;
4. Route Protection
routes/api.js
const express = require('express');
const casAuth = require('../middleware/cas-auth');
const router = express.Router();
router.get('/dashboard', casAuth, (req, res) => {
res.json({ message: 'Welcome', user: req.user });
});
router.get('/profile', casAuth, (req, res) => {
res.json(req.user);
});
module.exports = router;
Done! Add
casAuth middleware to any route that requires SSO authentication.