【发布时间】:2022-10-24 05:13:13
【问题描述】:
我正在创建一个 Shopify 应用程序,它有自己的 Shopify oAuth。我已经构建了一个外部 NodeJS 应用程序来处理所有设置,通过 api 处理所有仪表板分析等。
我需要将这两个服务连接在一起。在 Shopify 上安装应用程序后,我的外部服务上有一个端点,可以在我的表中创建 shop。虽然现在我需要只允许该商店能够查看他们的数据/更新它,而不是修改请求以获取其他商店信息。也不允许公众查看这些端点。
我正在考虑在 NodeJS(外部)应用程序上生成一个 Api 令牌并将其保存在 Shopify Database(另一个存储数据库)中,然后在每个请求中传递它并在外部应用程序端进行验证。我喜欢这种方法,但我也觉得它不安全,因为有人可以窃取令牌。
[您实际上也没有“创建”一个帐户,您只需安装应用程序,然后应用程序发出 Api 请求以获取新的“商店”条目] 我正在考虑为此使用 JWT,但可能不能。
另一种选择是结合 Api 令牌并在外部 NodeJS 上创建 1 个管理员用户,以便需要传递带有 Api 令牌的 Bearer 令牌。这提供了 1 层额外的安全性,因为他们“需要”至少在 Shopify 中安装此应用程序。
我可以研究哪些建议?
【问题讨论】:
标签: node.js api security design-patterns