@aimee-blue/ab-service-kit
Version:
Aimee Blue Service Template
53 lines (46 loc) • 1.31 kB
text/typescript
import { IServiceConfig } from './shared';
import { verifyToken, currentSelfSignedToken } from './shared/auth';
import { expressWithAuth } from './shared/auth/expressWithAuth';
import { createTestEpic } from './testEpic';
const config: IServiceConfig = {
defaultPort: 4010,
spy: async spy => {
spy.log(/debug-.*/);
},
endpoints: async (app, deps) => {
app.get('/verify', (_req, res, next) => {
const fn = async () => {
const token = await currentSelfSignedToken();
deps.logger.log('token', { token });
const verified = await verifyToken({
token,
allow: ['cluster'],
});
return verified;
};
fn()
.then(result => {
deps.logger.log('result', result);
res.json(result).status(200);
})
.catch(err => {
deps.logger.error('Error', err);
next(err);
});
});
app.get('/test-no-auth', (_req, res) => {
res.sendStatus(200);
});
app.use(expressWithAuth(['project-service-account']));
app.get('/test-auth', (_req, res) => {
res.sendStatus(200);
});
},
sockets: async () => {
return {
'/events': createTestEpic(),
'/binary-performance-test': createTestEpic(),
};
},
};
export default config;