From f76f1424ca689e7bd7a103abd92376366c6e08a4 Mon Sep 17 00:00:00 2001 From: pan261 Date: Mon, 8 Nov 2021 16:11:08 -0500 Subject: [PATCH] exporting credentials and auth client from server --- server.js | 64 +++++++++++++++++++++++++++++++++---------------------- test.js | 3 +++ 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/server.js b/server.js index f46f6d1..b6d064c 100644 --- a/server.js +++ b/server.js @@ -21,7 +21,17 @@ const ForgeSDK = require('forge-apis'); Navigate to http://localhost:3000/auth/ to get started Browser should then go through the Autodesk Auth screen and display Auth token. */ +const scopes = ['bucket:create', 'bucket:read', 'data:read', 'data:create', 'data:write']; +var oAuth2ThreeLegged = new ForgeSDK.AuthClientThreeLegged( + process.env.FORGE_CLIENT_ID, + process.env.FORGE_CLIENT_SECRET, + process.env.FORGE_CALLBACK_URL, + scopes, + true +); + +var credentials; /* Function to start the server @@ -30,46 +40,38 @@ const ForgeSDK = require('forge-apis'); function createServer() { const app = express(); const PORT = process.env.PORT || 3000; - const scopes = ['bucket:create', 'bucket:read', 'data:read', 'data:create', 'data:write']; - const oAuth2ThreeLegged = new ForgeSDK.AuthClientThreeLegged( - process.env.FORGE_CLIENT_ID, - process.env.FORGE_CLIENT_SECRET, - process.env.FORGE_CALLBACK_URL, - scopes, - true - ); if (process.env.FORGE_CLIENT_ID == null || process.env.FORGE_CLIENT_SECRET == null) { - console.error('Missing FORGE_CLIENT_ID or FORGE_CLIENT_SECRET env. variables.'); - return; + console.error('Missing FORGE_CLIENT_ID or FORGE_CLIENT_SECRET env. variables.'); + return; } app.use(express.static(path.join(__dirname, 'public'))); app.use(cookieSession({ - name: 'forge_session', - keys: ['forge_secure_key'], - maxAge: 14 * 24 * 60 * 60 * 1000 // 14 days, same as refresh token + name: 'forge_session', + keys: ['forge_secure_key'], + maxAge: 14 * 24 * 60 * 60 * 1000 // 14 days, same as refresh token })); // Endpoint to begin authentication process app.get('/auth', function (req, res) { - res.redirect(oAuth2ThreeLegged.generateAuthUrl()); + res.redirect(oAuth2ThreeLegged.generateAuthUrl()); }); // Endpoint Forge redirects to after consent screen app.get('/callback', function (req, res) { - oAuth2ThreeLegged.getToken(req.query.code).then(function (credentials) { - console.log(credentials) - res.send('Generated token: ' + credentials.access_token); - }, function(err){ + oAuth2ThreeLegged.getToken(req.query.code).then((credentials) => { + setCredentials(credentials) + res.send("Generated token: " + credentials.access_token) + }, (err) => { console.error(err); res.send('Failed to authenticate'); }); }); app.use((err, req, res, next) => { - console.error(err); - res.status(err.statusCode).json(err); + console.error(err); + res.status(err.statusCode).json(err); }); const server = app.listen(PORT, () => { console.log(`Server listening on port ${PORT}`); }); @@ -77,16 +79,28 @@ function createServer() { return server; } +const setCredentials = (cr) => { + credentials = cr + console.log(cr) +} + +const getCredentials = () => { + return credentials +} + /* Function to shutdown the server */ function shutdownServer(server) { server.close(() => { - console.log('Closing connections'); - return; + console.log('Closing connections'); + return; }); } - -module.exports.create = createServer; -module.exports.shutdown = shutdownServer; \ No newline at end of file +module.exports = { + create: createServer, + shutdown: shutdownServer, + authClient: oAuth2ThreeLegged, + getCredentials: getCredentials +} \ No newline at end of file diff --git a/test.js b/test.js index d7713de..fe07737 100644 --- a/test.js +++ b/test.js @@ -7,6 +7,9 @@ const authServer = require('./server'); function intervalFunc() { console.log('Running every 15 sec'); + cr = authServer.getCredentials(); + console.log(cr); + console.log(authServer.authClient); } (async () => {