我已经从使用 OmniAuth 的服务中收到了一个 token / secret ,并且可以为用户存储它,但我不知道如何实际使用这些来调用服务。
我见过的最接近这个问题的是here但他解决问题的方式感觉不对。我觉得如果您知道自己在做什么,OmniAuth 可能会为您完成这一切。
Netflix 参与其中 auth process ,所以我希望通过使用 OmniAuth 将我从所有这一切中抽象出来来避开所有这一切。
鉴于我有用户的 token 和 secret ,如何使用这些来调用像 Netflix 这样的服务?
非常感谢:)
最佳答案
嘿,我是 OmniAuth gem 的作者。 OmniAuth 旨在用于身份验证过程。对于像 Netflix 这样的 OAuth 提供者,这意味着将请求 token 交换为访问 token ,然后使用访问 token 从 API 中提取用户信息。这些一次性调用是专门为每个提供商设计的,不是给定提供商的通用 API 客户端。
您可以使用 OmniAuth 来获取凭据,然后为网站本身使用另一个特定的库(例如 ruby-netflix
或其他任何东西,我'我不确定最好的电话是什么)。您可以通过访问 env['omniauth.auth']['credentials']
来检索在身份验证舞蹈中获得的访问 token 和 secret ,然后使用它们来初始化 API 客户端。
您也可以直接使用 OAuth 库进行这些调用,但我强烈建议只使用现有的库,这样会更快更容易。所有这些都有意义吗?
关于ruby-on-rails - 如何使用 omniauth 对服务进行经过身份验证的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675029/