我正在为我的Rails应用程序构建一个API,我试图为API和应用程序逻辑重用相同的控制器。没有认证用户的请求很好,但如果某些操作需要认证,如何实现。我正在使用authlogic,编辑人员需要一些特定的权限,我正在检查before_filter。如果我使用http基本身份验证实现API,我如何区分?为Rails应用程序实现API
0
A
回答
1
我认为有两个部分的答案。首先,您需要使用authlogic设置http basic auth。这样做的详细信息包含在此答案中:Rails: Basic Authentication with Authlogic
然后,您需要区分API调用和控制器中的普通浏览器调用。假设你的API是XML或JSON,你可以这样做:
class ThingsController < ApplicationController
before_filter :authorize
def authorize
if params[:format] == 'json' || params[:format] == 'xml'
require_http_auth_user # http basic auth for API access
else
require_user # normal authlogic authentication
end
end
end
0
它可能是值得分离成两个单独的控制器,包括通过mixin的通用功能。这样你可以分别授权控制器。
相关问题
- 1. 实现Coffeescript到Rails应用程序
- 2. 实现Rails API
- 3. 如何在Rails 3应用程序中实现更快搜索(Rails 3应用程序中键入(SAYT)api)
- 4. rails实时应用程序
- 5. 如何为monodroid/mvvmcross应用程序实现社交api(facebook)?
- 6. 为Android应用程序实现容器应用程序?
- 7. 为web应用程序实现主题
- 8. 为iPhone应用程序实现Voice Over
- 9. 将webcache实现为web应用程序
- 10. 实现谷歌地图API的应用程序做出反应
- 11. 将reCaptcha实现为Rails 2.3.12应用
- 12. Rails设计应用程序为移动应用程序创建REST api
- 13. 为旅程共享应用程序实现正确的模型 - Rails
- 14. 使用Websockets在Rails应用程序中实现自动保存
- 15. 我有一个Rails应用程序,需要实现使用AuthLogic
- 16. Rails API - 投票应用程序,协会
- 17. 在现有Rails应用程序中嵌入React应用程序
- 18. 实现使用应用程序上下文API - 尔康
- 19. 使用OAuth和单页应用程序实现Web API
- 20. 在Rails应用程序中实现规则引擎
- 21. 在Ruby on Rails 3应用程序中实现搜索?
- 22. 如何实现谷歌地图到我的Rails应用程序?
- 23. 在Rails应用程序中实现“记住我”
- 24. 如何在non rails应用程序中实现erb partials?
- 25. 在Rails应用程序中实现类似Gmail的标签
- 26. 无法在Rails 4.2应用程序中实现recaptcha gem选项
- 27. 在Rails应用程序中实现链接列表堆栈
- 28. 在Rails应用程序中实现投票的最佳方式?
- 29. 如何在Rails应用程序中实现虚空URL?
- 30. 如何为现有的Ruby on Rails 5应用程序创建REST API?