IO-256 QBO Authorization Flow.

This commit is contained in:
Patrick Fic
2021-08-26 15:48:10 -07:00
parent db4e5d48af
commit 724c097d52
16 changed files with 673 additions and 73 deletions

View File

@@ -6,26 +6,25 @@ require("dotenv").config({
),
});
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,
clientId: process.env.QBO_CLIENT_ID,
clientSecret: process.env.QBO_SECRET,
environment: process.env.NODE_ENV === "production" ? "production" : "sandbox",
redirectUri: process.env.QBO_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);
try {
const authUri = oauthClient.authorizeUri({
scope: [OAuthClient.scopes.Accounting, OAuthClient.scopes.OpenId],
state: req.user.uid,
}); // can be an array of multiple scopes ex : {scope:[OAuthClient.scopes.Accounting,OAuthClient.scopes.OpenId]}
// Redirect the authUri
res.send(authUri);
} catch (error) {
console.log(error);
res.sendStatus(500);
}
};