32 lines
1.0 KiB
JavaScript
32 lines
1.0 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");
|
|
var tokens = new Tokens();
|
|
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) => {
|
|
console.log("QBO Authorize Called");
|
|
const { userId } = req.body;
|
|
console.log("exports.default -> userId", userId);
|
|
// AuthorizationUri
|
|
|
|
const authUri = oauthClient.authorizeUri({
|
|
scope: [OAuthClient.scopes.Accounting, OAuthClient.scopes.OpenId],
|
|
state: tokens.create(userId),
|
|
}); // can be an array of multiple scopes ex : {scope:[OAuthClient.scopes.Accounting,OAuthClient.scopes.OpenId]}
|
|
console.log("authUri", authUri);
|
|
// Redirect the authUri
|
|
res.send(authUri);
|
|
};
|