const axios = require('axios'); async function getToken(code) { const params = { client_id: process.env['WITHINGS_CLIENT_ID'], client_secret: process.env['WITHINGS_CLIENT_SECRET'], code: code, grant_type: 'authorization_code', action: 'requesttoken', redirect_uri: 'https://ohmyposh.dev/api/auth', }; const resp = await axios.post('https://wbsapi.withings.net/v2/oauth2', null, { params: params }); if (resp.data.error) { throw resp.data.error; } return { access_token: resp.data.body.access_token, refresh_token: resp.data.body.refresh_token, expires_in: resp.data.body.expires_in }; } async function refreshToken(refresh_token) { const params = { client_id: process.env['WITHINGS_CLIENT_ID'], client_secret: process.env['WITHINGS_CLIENT_SECRET'], refresh_token: refresh_token, grant_type: 'refresh_token', action: 'requesttoken', redirect_uri: 'https://ohmyposh.dev/api/auth', }; const resp = await axios.post('https://wbsapi.withings.net/v2/oauth2', null, { params: params }); return { access_token: resp.data.body.access_token, refresh_token: resp.data.body.refresh_token, expires_in: resp.data.body.expires_in }; } module.exports = { getToken: getToken, refreshToken: refreshToken, }