37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
const path = require("path");
|
|
require("dotenv").config({
|
|
path: path.resolve(
|
|
process.cwd(),
|
|
`.env.${process.env.NODE_ENV || "development"}`
|
|
),
|
|
});
|
|
const OAuthClient = require("intuit-oauth");
|
|
var Tokens = require("csrf");
|
|
|
|
const oauthClient = new OAuthClient({
|
|
clientId: process.env.QB_ONLINE_CLIENT_ID,
|
|
clientSecret: process.env.QB_ONLINE_SECRET,
|
|
environment: "sandbox", //process.env.NODE_ENV === "production" ? "production" : "sandbox",
|
|
redirectUri: process.env.QB_ONLINE_REDIRECT_URI,
|
|
});
|
|
|
|
exports.default = async (req, res) => {
|
|
// Parse the redirect URL for authCode and exchange them for tokens
|
|
const parseRedirect = req.url;
|
|
const { code, state, realmId } = req.query;
|
|
console.log("exports.default -> state", state);
|
|
// Exchange the auth code retrieved from the **req.url** on the redirectUri
|
|
oauthClient
|
|
.createToken(parseRedirect)
|
|
.then(function (authResponse) {
|
|
console.log("The Token is " + JSON.stringify(authResponse.getJson()));
|
|
const { access_token, refresh_token } = authResponse.getJson();
|
|
console.log("exports.default -> refresh_token", refresh_token);
|
|
console.log("exports.default -> access_token", access_token);
|
|
})
|
|
.catch(function (e) {
|
|
console.error("The error message is :" + e.originalMessage);
|
|
console.error(e.intuit_tid);
|
|
});
|
|
};
|