【问题标题】:Implicit auth flow for Shopify app using koa-shopify-auth使用 koa-shopify-auth 的 Shopify 应用程序的隐式身份验证流程
【发布时间】:2020-08-05 20:21:39
【问题描述】:

我有一个由以下人员创建的 React 前端:https://shopify.dev/tutorials/build-a-shopify-app-with-node-and-react

这是一个NextJsReact 应用程序,带有一个自定义Koa 服务器来服务NextJs 应用程序。 Koa 服务器使用 koa-ashopify-auth 包通过 Shopify 执行 OAuth 并获取访问令牌。

这是授权中间件代码:

    server.use(
      createShopifyAuth({
        apiKey: SHOPIFY_API_KEY as string,
        secret: SHOPIFY_API_SECRET_KEY as string,
        scopes: ['read_products'],
        afterAuth(ctx) {
          const { shop, accessToken } = ctx.session as IShopifyKoaSession

          >>> I would like to create a user on my own backend now and login the user.
          
           .... more stuff
        }
      })
    )

我有一个Django 后端,我将设置一个 REST 端点来对我的后端进行身份验证(我想使用 JWT)。

所以我在客户端使用 Shopify 执行了 OAuth 并拥有访问令牌

如何使用此客户端访问令牌并以安全的方式在我的后端创建新用户?

我在想类似 ->

    ...
    const { shop, accessToken } = ctx.session as IShopifyKoaSession
    await myApiService.createOrUpdateUser(shop, accessToken) // Calls my external backend

我该怎么做呢?这基本上是一个隐式的 oauth 流程。

除非有办法在后端验证商店和访问令牌,否则上述内容将不安全。

【问题讨论】:

    标签: django oauth shopify next.js


    【解决方案1】:

    例如,您可以使用 next-auth 模块,它是 OSS 并且有一个不错的 api

    https://next-auth.js.org/

    在此处查看此示例。顺便说一句,所有其他示例都很可靠,强烈建议您每次不确定方法时都去那里。

    https://github.com/vercel/next.js/tree/canary/examples/with-next-auth

    这个特定的教程似乎也很相关(使用 next-auth)https://next-auth.js.org/tutorials/securing-pages-and-api-routes

    一般而言,您可以利用服务器端渲染功能和支持 /pages/api 路由来创建从 Django 后端获取 JWT 令牌的后端路由。

    【讨论】:

    • 您有使用 Shopify 进行下一个身份验证的示例吗?有大量示例,但没有专门针对 Shopify。
    • @heyron 刚刚在 Github 上快速搜索了一下,发现了这个github.com/bluebeel/nextjs-shopify-auth。还没有尝试过,但试一试,看看它是否有效。
    • 感谢您传递此信息。我确实找到了这个并最终走上了类似的道路。
    猜你喜欢
    • 2018-03-31
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多