rails 3中的api身份验证

Posted

技术标签:

【中文标题】rails 3中的api身份验证【英文标题】:api authentication in rails 3 【发布时间】:2011-07-18 18:05:16 【问题描述】:

目前我有一个使用设计插件进行网站身份验证的 rails 3 应用程序。但现在我还将添加一个 iPhone 应用程序,因此我会将 api 调用公开给客户端设备 (iPhone)。我将如何实现 auth 模块,以便 iPhone 客户端可以对 rails 站点进行身份验证并访问一些 api?

我应该创建一个 oauth 提供程序、令牌基础身份验证还是简单的 http 身份验证有效?

【问题讨论】:

【参考方案1】:

在这种情况下,HTTP Basic 身份验证可以正常工作。如果您希望它更安全,您可以创建一个 OAuth 提供程序并创建您自己的 Twitter xAuth 实现,以使其更加用户友好。本质上,您将创建一个接受用户名和密码的 API 调用,然后为该用户返回一个 OAuth 请求令牌。您可以将该请求令牌存储在 iPhone 上并使用它来验证后续请求。

【讨论】:

您能否发布一个代码 sn-p,说明 ruby​​ 代码中的请求将如何使用令牌? OAuth 是一个相当复杂的话题,所以我简化了很多,但基本上在初始 OAuth 连接期间,您将生成一个访问令牌并将其与它所属的用户一起存储在您的数据库中.当您向 API 发出请求时,您将提供访问令牌。然后,您的服务可以查找谁拥有访问令牌并相应地进行身份验证/授权。查找 Ruby OAuth Provider 库。

以上是关于rails 3中的api身份验证的主要内容,如果未能解决你的问题,请参考以下文章

SOA:Rails 多个客户端的用户身份验证和 api 授权

这个 Rails JSON 身份验证 API(使用 Devise)安全吗?

Rails:在开发中禁用敲击 JWT 身份验证

使用 Devise 从 Rails 上的 json api 进行身份验证

Rails api 和本机移动应用程序身份验证

Rails API 用户身份验证接受来自 React 代理的 api 调用,但不直接来自主机 url