diff --git a/index.mjs b/index.mjs index e5da0da..6a28112 100644 --- a/index.mjs +++ b/index.mjs @@ -7,20 +7,21 @@ const authorizer = new Authorizer({ redirectURL: 'https://testing.discours.io', }); -const startServer = async () => { - const server = await Server.configure({ - port: process.env.PORT || 4000, - async onConnect({ connection }) { - connection.requiresAuthentication = true; - }, - async onAuthenticate(data) { - if (data.requestHeaders) { - const params = { - token_type: 'access_token', - token: data.requestHeaders['authorization'] || '', - }; - if (params.token) { - const response = await authorizer.validateJWTToken(params); +const server = Server.configure({ + port: process.env.PORT || 4000, + onConnect({ connection }) { + connection.requiresAuthentication = true; + }, + onAuthenticate(data) { + if (data.requestHeaders) { + const params = { + token_type: 'access_token', + token: data.requestHeaders['authorization'] || '', + }; + if (params.token) { + authorizer.validateJWTToken(params) + .then(response => { + if (response?.data?.is_valid) { const { sub: user, allowed_roles: roles } = response.data.claims; console.debug(`user_id: ${user} roles: ${roles}`); @@ -29,14 +30,14 @@ const startServer = async () => { roles, }; } + }).catch((e) => { + console.error(e) console.error('no valid auth token presented'); throw new Error('Not authorized!'); - } + }) } - }, - }).listen(); + } + }, +}); - server.listen(); -}; - -startServer(); +server.listen();