2023-03-17 18:27:13 +00:00
|
|
|
import crypto from 'crypto';
|
2023-03-14 11:00:40 +00:00
|
|
|
import { auth, ConfigParams } from 'express-openid-connect';
|
|
|
|
import ChatServer from './index';
|
|
|
|
|
2023-03-17 18:27:13 +00:00
|
|
|
const secret = process.env.AUTH_SECRET || crypto.randomBytes(32).toString('hex');
|
|
|
|
|
2023-03-14 11:00:40 +00:00
|
|
|
const config: ConfigParams = {
|
|
|
|
authRequired: false,
|
|
|
|
auth0Logout: false,
|
2023-03-17 18:27:13 +00:00
|
|
|
secret,
|
2023-03-14 11:00:40 +00:00
|
|
|
baseURL: process.env.PUBLIC_URL,
|
|
|
|
clientID: process.env.AUTH0_CLIENT_ID,
|
|
|
|
issuerBaseURL: process.env.AUTH0_ISSUER,
|
|
|
|
routes: {
|
|
|
|
login: false,
|
|
|
|
logout: false,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
export function configureAuth0(context: ChatServer) {
|
|
|
|
context.app.use(auth(config));
|
|
|
|
|
|
|
|
context.app.get('/chatapi/login', (req, res) => {
|
|
|
|
res.oidc.login({
|
|
|
|
returnTo: process.env.PUBLIC_URL,
|
|
|
|
authorizationParams: {
|
|
|
|
redirect_uri: process.env.PUBLIC_URL + '/chatapi/login-callback',
|
|
|
|
},
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
context.app.get('/chatapi/logout', (req, res) => {
|
|
|
|
res.oidc.logout({
|
|
|
|
returnTo: process.env.PUBLIC_URL,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
context.app.all('/chatapi/login-callback', (req, res) => {
|
|
|
|
res.oidc.callback({
|
|
|
|
redirectUri: process.env.PUBLIC_URL!,
|
|
|
|
})
|
|
|
|
});
|
|
|
|
}
|