From bce8fa2e74a8f5c6bb9bce9fec1087e99a2be987 Mon Sep 17 00:00:00 2001 From: Matt Huntington Date: Thu, 22 Dec 2022 16:42:22 -0500 Subject: [PATCH] get token only after it expires are app starts --- server.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/server.js b/server.js index a02b536..5bd4299 100644 --- a/server.js +++ b/server.js @@ -3,6 +3,9 @@ const app = express(); const axios = require('axios'); const querystring = require('querystring'); +let tokenExpirationDate = false; +let bearerToken; + const data = { grant_type:'password', username:process.env.REDDITUSR, @@ -14,16 +17,20 @@ const auth = { } const getToken = async ()=>{ - const response = await axios({ - url:'https://www.reddit.com/api/v1/access_token', - method:'post', - auth:auth, - data:querystring.stringify(data) - }) + if(tokenExpirationDate === false || Date.now() > tokenExpirationDate){ + const response = await axios({ + url:'https://www.reddit.com/api/v1/access_token', + method:'post', + auth:auth, + data:querystring.stringify(data) + }) + bearerToken = response.data.access_token + tokenExpirationDate = Date.now()+(response.data.expires_in*1000) + } const config = { headers:{ - Authorization: 'bearer '+response.data.access_token + Authorization: 'bearer '+ bearerToken } } return config @@ -48,6 +55,8 @@ const generate = async (req, res)=>{ } +getToken(); + app.get('/', generate) app.get('/:direction/:page', generate)