使用Express和Mongoose创建Shopify应用程序。商店的域和访问令牌保存在安装过程的回调路由上的数据库中。应用程序的索引通过以下功能验证:
const verifyOAuth = query => {
if (!query.hmac) {
return false;
}
const hmac = query.hmac;
delete query.hmac;
const sortedQuery = Object.keys(query).map(key => `${key}=${Array(query[key]).join(',')}`).sort().join('&');
const calculatedSignature = crypto.createHmac('sha256', config.SHOPIFY_SHARED_SECRET).update(sortedQuery).digest('hex');
if (calculatedSignature === hmac) {
return true;
}
return false;
}
如何为从mongo数据库访问商店数据的请求创建中间件功能。
前任:
router.get('/content', auth, (req, res) => {
const content = Content.findOne({shopifyDomain: 'shopify-domain-here'})
res.send(content);
});
var auth = (req, res, next) => {
// Get shop domain from authentication
next();
};
我需要将shop域和hmac添加为对'/content'的每个get请求的查询,还是应该在加载应用程序索引时使用res.setheader将它们设置为头,或者是否有更好的解决方案?