gpt4 book ai didi

ruby-on-rails - OAuth 安装 - 如何创建跨请求持续存在的 session ?

转载 作者:行者123 更新时间:2023-12-05 07:20:30 26 4
gpt4 key购买 nike

我正在尝试实现 OAuth 协议(protocol),以便我可以在我的 Rails 6 应用程序中将 Shopify API 作为第三方 API 服务进行访问。

我能够完成 OAuth 流程的 3/4,但我似乎无法发出从我的 Rails 应用程序发送到 Shopify 的 POST 请求。我是 Rails 和后端开发的新手,所以可能会遇到很多问题。

现在,代码使用 shopify_api gem 来完成这一切。我不确定如何实例化 session ,以便它跨操作引用同一 session 。我有一个 before_action,每次使用该 Controller 时都会调用它,而不管操作如何。因此,每当它是一个新 Action 时,它都会创建一个新 session (我认为这就是正在发生的事情 - 我不确定我是否使用了正确的语言来描述它)。我不知道在哪里定义 shopify_session 变量,以便它在每个操作中都有效。这是代码:

class ShopifyController < ApplicationController
before_action :shopify_session

def install
scope = ["write_orders,read_customers"]

permission_url = @shopify_session.create_permission_url(scope, "https://#{APP_URL}/shopify/auth")

redirect_to permission_url
end

def auth
token = @shopify_session.request_token(request.params)
end

private
def shopify_session
ShopifyAPI::Session.setup(api_key: API_KEY, secret: API_SECRET)

shop = request.params['shop']

@shopify_session = ShopifyAPI::Session.new(domain: "#{shop}", api_version: "2019-07", token: nil)
end
end

上面的代码返回:

ShopifyAPI::ValidationException in ShopifyController#auth
Invalid Signature: Possible malicious login

我的 ngrok 日志说:

POST /shopify/auth             500 Internal Server Error                        
GET /shopify/auth 200 OK
GET /shopify/install 302 Found

也可能存在 CORS 错误。浏览器标题检查说:推荐人政策:strict-origin-when-cross-origin

此外,它似乎是在向自己发送请求,而不是向 Shopify 发送请求。我认为那是因为在我看来,我有以下代码:

<%= button_to 'Confirm Account', shopify_auth_url %>

我不知道如何触发发送到 Shopify 的 POST 请求...同样,我是 Rails 和后端的新手——我主要了解前端。

最佳答案

我认为问题在于您可能希望在您的 ApplicationController 中使用此 Shopify 身份验证逻辑,以便它可以在所有 Controller 之间共享。

此外,不确定您在使用 shopify_auth_url 做什么。你有没有定义那条路线?

关于ruby-on-rails - OAuth 安装 - 如何创建跨请求持续存在的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57486150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com