- Which SDK this is regarding: express-openid-connect
- SDK Version: 2.2.1
- Platform Version: Node 14.15.5
Context:
I am building an express app, I plan to separate it conceptually into two components
- Landing page
- Admin
Admin requires auth, while the landing page doesn’t. I am using the express Router to configure my routes. So I construct two new routers which can accept middleware just as the express app itself can. For the admin section I am able to gate it’s routes using the requiresAuth
middleware exposed by you fine folk!!
Problem
When I try and access req.ocid.user
TypeScript doesn’t recognize the field oidc
My express app is setup as follows (cut down to only include relevant code):
import express from 'express';
import { auth } from 'express-openid-connect';
import { funnelRouter, adminRouter } from './routes';
const app = express();
app.use(auth(AUTH_CONFIG));
app.use('/', funnelRouter);
app.use('/admin', adminRouter);
export const start = () => {
app.listen(PORT, () => {
console.log(`Listening on localhost:${PORT}`);
});
};
AUTH_CONFIG
export const AUTH_CONFIG = {
authRequired: false,
auth0Logout: true,
secret: process.env.AUTH_0_SECRET,
baseURL: 'http://localhost:3000',
clientID: my-id,
issuerBaseURL: 'my-url',
};
Admin router
import express from 'express';
import { requiresAuth } from 'express-openid-connect';
const router = express.Router();
router.use(requiresAuth());
router.get('/', (req, res) => {
res.send(JSON.stringify(req.oidc.user));
});
export default router;