ruby-on-rails - 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很陌生。
解决方案
Shopify 通常会传递一个hmac
需要在后端进行验证的参数。
这个 hmac 主要包括静态信息,如您的商店名称、时间戳、语言等……但重要的部分是用 APP 密码加盐。
您可以在此处阅读更多相关信息:https ://help.shopify.com/en/api/getting-started/authentication/oauth#verification
这意味着您不能在 Shopify 之外提出请求。
推荐阅读
- java - Spring Profile 根据环境自动指定
- azure-data-factory - Azure 复制活动休息结果意外
- javascript - 如何根据字段 OrderNo 和 Location 合并两个对象数组?
- qr-code - 使用 QRCoder 库版本 1.3.5 时无法访问 QRCode 或 QRCodeGenerator.QRCode 类
- java - 如何避免缓存子集合?
- python - 为什么列表理解会删除一个 int?
- bash - 用另一个字符串外壳剥离一个字符串
- docker - Dockerfile apt-get install - 503 服务不可用
- python - 在 Python 中打开和读取文件
- java - 如何为 Spring-Boot 请求映射方法设置优先级