RoR中API的身份验证

时间:2010-12-10 04:24:08

标签: ruby-on-rails api authentication

我有一个可用于Web客户端的Ruby On Rails应用程序。此应用程序允许不同的用户使用不同的凭据处理共享项目。客户可以通过登录经典登录/密码组合,以便能够访问分配给他们的项目。凭证由authlogic通过ruby会话存储和管理。一切都很顺利。

我们想使用rails MVC goodness为此应用程序添加API。这意味着重用现有的和工作的控制器,只需编写新的(在我们的例子中为XML)视图。

应该可以从Java Desktop程序轻松访问此API。更具体而言,有问题的是,相同的Java桌面实例可以执行对API的多个准同时调用,但每个调用与不同的用户相关联。

这意味着我们不能(我认为)使用"登录一次,做一切接近"。我们需要在每次请求时提供登录信息,或者至少是一些令牌之王。

你看到我遗失的一个关键点吗?如果没有,您是否认为有任何方法可以正确实施,或者有任何潜在客户(如文档或Google搜索查询)可以引导我到那里?

我还必须补充一点,我绝对不是一名高级程序员"。我只是通过研究它来学习框架,所以不要以为我忽略了一个明显的解决方案,我可能忽略了它。

此外,不要犹豫,纠正我可能做出的任何错误或错误假设。我真的需要了解更多关于网络编程/ ruby​​ on rails /计算机科学的知识。

谢谢Stack O。

2 个答案:

答案 0 :(得分:0)

我觉得可能对你有帮助的是devise gem。它被广泛用于与您相同的目的。

从自述文件:

  

设计

     

Devise是基于Warden的Rails灵活的身份验证解决方案。它:

     
      
  • 基于机架;
  •   
  • 是一个基于Rails引擎的完整MVC解决方案;
  •   
  • 允许您同时登录多个角色(或模型/范围);
  •   
  • 基于模块化概念:使用您真正需要的东西。
  •   

答案 1 :(得分:0)

您可以使用基于HTTP的身份验证方案,例如基本访问身份验证或摘要身份验证。如果以这种方式发送凭据,Authlogic将自动尝试验证每个请求。