ruby-on-rails - 如何使用 omniauth 对服务进行经过身份验证的调用?

标签 ruby-on-rails ruby omniauth netflix

我已经从使用 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/

相关文章:

ruby-on-rails - Rails - 将序列化数组添加到现有模型

ruby - 在 Webby 布局中设置属性

ruby-on-rails - 如何使用 Devise 为 Omniauth 制作自定义登录表单?

ruby-on-rails - omn​​iauth 和电子邮件密码注册的最佳做法是什么?

ruby-on-rails - 定义一个 Rails 助手(或非助手)函数以在任何地方使用,包括模型

ruby-on-rails - 为什么运行 `rails s` 作为守护进程不会启动 Puma?

ruby-on-rails - 构建获取 IP 的中间件

ruby-on-rails - 如何使用 Ruby on Rails 将 company.address.city 转换为对象

ruby-on-rails - 使用 Rails 5 和 acts-as-taggable-on 4 时无法运行 rspec

ruby-on-rails - 使用Devise,OmniAuth,Mongoid和JSON响应的Rails 3中的用户身份验证示例