首页 > 解决方案 > Shopify Embedded App 对我的 postgresql 数据库的请求进行身份验证

问题描述

shopify 是否有一种方法来验证对我的 postgresql 数据库的请求。我获得了使用 ruby​​ on rails(后端)和 react.js 和 Polaris(前端)完成的 shopify 嵌入式应用程序的代码,我看到前端在没有任何标头或授权的情况下向后端发出请求。

例子:

axios.get('/api/main/vendor’)
.then(response=> {
    console.log(response)
})
.catch(error=> {
    console.log(error)
});

这似乎有效并打印出来自后端的响应。

但是,当我运行服务器并通过 Postman 发出 GET 请求时,传入此 URL:

https://<NGROK_URL>/api/main/vendor

我可以在终端中看到我得到状态 302(重定向到登录)。

Processing by Api::MainController#vendor as JSON
Redirected to https://<NGROK_URL>/login
Completed 302 Found in 19ms (ActiveRecord: 0.0ms)

我想知道 shopify 在开发我不知道的嵌入式应用程序时是否进行了某种身份验证。例如,它是否隐式传递了一些令牌?如果是这样,我在哪里可以找到这个。抱歉这个问题听起来很新,我对shopify dev很陌生。

标签: ruby-on-railspostgresqlpostmanshopify

解决方案


Shopify 通常会传递一个hmac需要在后端进行验证的参数。

这个 hmac 主要包括静态信息,如您的商店名称、时间戳、语言等……但重要的部分是用 APP 密码加盐。

您可以在此处阅读更多相关信息:https ://help.shopify.com/en/api/getting-started/authentication/oauth#verification

这意味着您不能在 Shopify 之外提出请求。


推荐阅读