ruby-on-rails - Magento oauth 和 REST api 问题

标签 ruby-on-rails magento rest oauth omniauth

我正在尝试将我的 ruby​​ on rails 应用程序集成到 magento,并且我已经提出了初始请求,获得了授权,我相信我正在获得最终的 token ,但我不能确定。以下是我的回复:

(这里有很多东西,所以跳过我提取导入位的地方)

 .....
 "credentials"=>
  {"token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1",
   "secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5"},
 "extra"=>
  {"access_token"=>
    #<OAuth::AccessToken:0x007fdd59893468
     @consumer=
      #<OAuth::Consumer:0x007fdd5995f928
       @http=#<Net::HTTP mymagentocart.dev:443 open=false>,
       @http_method=:post,
       @key="ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e",
       @options=
        {:signature_method=>"HMAC-SHA1",
         :request_token_path=>"/oauth/initiate",
         :authorize_path=>"/admin/oauth_authorize",
         :access_token_path=>"/oauth/token",
         :proxy=>nil,
         :scheme=>:header,
         :http_method=>:post,
         :oauth_version=>"1.0",
         :site=>"https://mymagentocart.dev"},
       @secret="b0maut2ftkg2wb3nm24t263720n7kxqa">,
     @params=
      {:oauth_token=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1",
       "oauth_token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1",
       :oauth_token_secret=>"8pnyogb4048toujt5rjoq26tqh50vkv5",
       "oauth_token_secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5"},
     @secret="8pnyogb4048toujt5rjoq26tqh50vkv5",
     @token="r8apb2rcgci9ry5hugcuiqlnwdi0evc1">},
 "oauth_token"=>"jj2dbrea7dimxwc0twibyoikxjazvs6y",
 "oauth_verifier"=>"83idqmtmb76fe5axad1rf7lhfa3wqxki"
.....

我在访问 token 中看到了我的 key 和 secret :
@key="ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e" 
@secret="b0maut2ftkg2wb3nm24t263720n7kxqa”

这是我在管理中创建 REST 使用者时 magento 给我的。

然后是一堆重复的 token 和 secret ,但它们都是一样的,都属于“凭证”标签:
“token"=>"r8apb2rcgci9ry5hugcuiqlnwdi0evc1" 
“secret"=>"8pnyogb4048toujt5rjoq26tqh50vkv5”

最后,还有 oauth_token 和 oauth_verifier:
“oauth_token"=>"jj2dbrea7dimxwc0twibyoikxjazvs6y" 
“oauth_verifier"=>"83idqmtmb76fe5axad1rf7lhfa3wqxki”

所以这是我的问题......

我需要通过 future 的哪些请求来立即进行身份验证,而无需重新生成 token ?

目前在我的应用程序中,每次我发出请求时,它都会将我发送回 magento 中的用户确认屏幕以进行授权。

另外,我如何请求获取我的 magento 用户 ID、名称等......以便我可以使用此信息在 rails 应用程序中生成一个用户?

谢谢!

最佳答案

您拥有访问 token 对象,因此您应该能够执行以下操作:

auth_hash["extra"]["access_token"].get("/api/rest/products")

如果您想创建一个新的访问 token 对象,您可以使用我从您的示例中提取的 key 和 token 执行以下操作:
@consumer=OAuth::Consumer.new("ttuj6ok0ioziv7bcfwi8wprzqe6o4x1e", "b0maut2ftkg2wb3nm24t263720n7kxqa", {:site => "https://mymagentocart.dev"})
@access_token = OAuth::AccessToken.new(@consumer, "r8apb2rcgci9ry5hugcuiqlnwdi0evc1", "8pnyogb4048toujt5rjoq26tqh50vkv5")
@access_token.get("/api/rest/products")

请参阅此页面上的“使用长期存在的访问 token ”:http://code.google.com/p/oauth-plugin/wiki/AccessToken

关于ruby-on-rails - Magento oauth 和 REST api 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545922/

相关文章:

Spring MVC 到 REST

ruby-on-rails - Rails 4 HABTM 自定义关联验证

magento - 在安装任何扩展程序的 magento 连接中出错

php - magento 存储国家/地区全名的位置

php - 将日期时间和时区转换为日期时间

java - 从 REST Web 服务向客户端发送 .apk 文件?

javascript - Rails 应用程序中的 jQuery Tablesorter 文件大小

ruby-on-rails - 渲染到变量

ruby-on-rails - 如何仅针对某些区域设置而不是全部区域设置启用 Rails i18n 后备?

java - Quarkus:对以字符串形式给出的 URL 的请求