UNPKG

cryptotalkapi-token-mgmt

Version:

This package helps you to refresh the access token every 12 hours. You need access_token to access APIs provided by cryptotalk. All APIs are free to use. More information can be found here: https://cryptotalk.gitbook.io/

50 lines (41 loc) 1.67 kB
const fetch = require('node-fetch'); let access_token = null; let refresh_token = null; function startRefresh(_access_token, _refresh_token){ access_token = _access_token; refresh_token = _refresh_token; forceRefresh(); setInterval(_refresh, 12*60*60*1000); } function forceRefresh(){ if(!refresh_token){ console.error("Refresh token has not been initialized, Please create access & refresh token by visting APIs (https://cryptotalk.finance)"); } _refresh(); } function getAccessToken(){ if(!access_token){ console.error("Access token has not been initialized, Please create access token by visting APIs (https://cryptotalk.finance)"); } return access_token; } async function _refresh(){ const params = new URLSearchParams(); const URL = "https://aaveonmobile-home.auth.us-east-2.amazoncognito.com/oauth2/token"; try { params.append('client_id', '5b6893vo53h5jo7jk8prhphei4'); params.append('grant_type', 'refresh_token'); params.append('refresh_token', refresh_token); const response = await fetch(URL, {method: 'POST', body: params}); const data = await response.json(); if(data.access_token){ console.log("Access token refreshed successfully, Expires after : " + (data.expires_in/3600) + " hours"); access_token = data.access_token; } } catch (error) { console.error("CryptoTalk API Error : " + URL + params); console.error(Error(error)); } } exports.getAccessToken = getAccessToken; exports.startRefresh = startRefresh;