Stack Overflow 社区您好,
我目前正在致力于将 Wix 与 Node.js 后端集成,并且在 OAuth 令牌检索过程中遇到了一些挑战。以下是我面临的问题的详细信息:
目标: 我的目标是从 Wix OAuth 获取刷新和访问令牌,并使用 Sequelize 将它们存储在我的 SQL 数据库中。
问题描述: 我不确定获取 OAuth 令牌的正确过程。具体如何获取刷新和访问令牌。
代码片段: 这是我当前的令牌检索实现的片段:
import axios from "axios";
import catchAsyncError from "../middlewares/catchAsyncError.js";
import dotenv from "dotenv";
import WixToken from "../models/wixToken.js";
import printStatement from "../utils/printStatement.js";
dotenv.config();
const clientID = process.env.WIX_CLIENT_ID;
const clientSecret = process.env.WIX_CLIENT_SECRET;
const redirectURI = "http://localhost:4000/auth/v1/redirect-url";
export const wixGetCode = catchAsyncError(async (req, res, next) => {
const wixAuthUrl = `https://www.wix.com/installer/install?token=${req.query.token}&appId=${clientID}&redirectUrl=${redirectURI}`;
res.redirect(wixAuthUrl);
});
export const wixgetToken = catchAsyncError(async (req, res, next) => {
const { code } = req.query;
const response = await axios.post(
"https://www.wixapis.com/oauth/access",
{
client_id: clientID,
client_secret: clientSecret,
grant_type: "authorization_code",
code: code,
},
{
headers: {
"Content-Type": "application/json",
},
}
);
const { access_token, refresh_token } = response.data;
const token = await WixToken.findAll()
if (token.length === 1){
if (token[0].token !== refresh_token) {
await token[0].update({ token: refresh_token });
}else{
printStatement("Token is same as previous token");
}
}
else{
await WixToken.create({ token: refresh_token });
}
printStatement("Token saved successfully");
res.redirect(
`https://www.wix.com/installer/token-received?token=${response.data.access_token}`
);
});
解决方案:Wix 与 Node.js 集成 - OAuth 访问和刷新令牌检索
Stack Overflow 社区您好,
经过彻底的调查和实验,我成功解决了在 Node.js 中集成 Wix 时遇到的问题,特别是关于 OAuth 令牌检索的问题。
GitHub 存储库: 为了帮助其他可能进行类似集成的人,我利用 MySQL 和 Sequelize 创建了一个用于 Wix 与 Node.js 服务器集成的基本模板。您可以在我的 GitHub 存储库中找到该模板:
随意克隆或分叉存储库并使其适应您的特定需求。我希望这个模板对社区有所帮助。 感谢那些在我的故障排除过程中提供帮助和指导的人。如果您有任何进一步的问题或改进建议,请随时对此答案发表评论。
我希望这个解决方案和模板对遇到类似挑战的其他人有价值。快乐编码!