Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用Desive和Rails 3的多个身份验证方案_Ruby On Rails 3_Devise_Restful Authentication - Fatal编程技术网

Ruby on rails 3 使用Desive和Rails 3的多个身份验证方案

Ruby on rails 3 使用Desive和Rails 3的多个身份验证方案,ruby-on-rails-3,devise,restful-authentication,Ruby On Rails 3,Devise,Restful Authentication,这可能是一个常见的问题,但我在任何地方都没有看到任何完整的答案: 我有一个Rails 3应用程序,它使用Desive在web上进行身份验证,运行良好。所有控制器上的所有操作都经过身份验证,路由都是restful的。用户被重定向到网页,输入用户名和密码,然后可以访问资源 现在我需要向系统添加一个API。大多数控制器/操作将在web和API用户之间共享,但API用户将拥有不同的身份验证方案(可能是API密钥) 因此,如果一个web用户访问 /projects/1/users 要查看web上的用户,

这可能是一个常见的问题,但我在任何地方都没有看到任何完整的答案:

我有一个Rails 3应用程序,它使用Desive在web上进行身份验证,运行良好。所有控制器上的所有操作都经过身份验证,路由都是restful的。用户被重定向到网页,输入用户名和密码,然后可以访问资源

现在我需要向系统添加一个API。大多数控制器/操作将在web和API用户之间共享,但API用户将拥有不同的身份验证方案(可能是API密钥)

因此,如果一个web用户访问

/projects/1/users
要查看web上的用户,API用户应访问

/api/v1/projects/1/users
要使用参数APIKey=abcd查看相同的内容,请执行以下操作。。。。在标头或参数中允许身份验证


我知道解决方案是覆盖SessionController和路由,但在任何地方都找不到关于这一点的详细答案。

您可以通过使用令牌身份验证来实现相同的结果:


您尝试过下面的解决方案吗?对你有用吗?是的,我试过了。没用。放弃了这一切,并为API和主站点拆分了代码库。