关于使用 Web 服务进行身份验证和会话管理的 Ruby Rails 身份验证方法的建议
我是 ruby on Rails 的初学者,对于采取的最佳身份验证方法有点困惑:
1)将用户在浏览器中输入的登录凭据安全地传递到 Web 服务调用(在 savon gem 中使用 http basic auth)。
2) 使用初始 Web 服务 http 响应提供的会话 ID 来允许用户与 Rails 应用程序和 Web 服务建立持久会话。
3) 在当前用户会话期间发出的每个 Web 服务请求中自动使用步骤 1 中输入的登录凭据和步骤 2 中的会话 ID(直到用户注销或关闭浏览器)。
我读过很多关于 cookie、会话和各种 gem(例如管理身份验证的 devise 和 authlogic)的内容,但这一切都相当令人困惑,我看不出它们如何适合我的由 Web 服务应用程序管理的所有身份验证和会话的特定场景而不是 Rails 应用程序。 谁能就如何实现上述目标提供任何建议?
谢谢
P.S Rails 应用程序只能通过手机浏览器访问。
I am a beginner with ruby on rails and a little confused as to the best authentication approach to take for:
1) Securely pass login credentials user has entered in browser to the web service call (using http basic auth in the savon gem).
2) Use the session id provided by the initial web service http response to allow the user to have a persitant session with the rails app and web service.
3) Automatically use the login credentials entered in step 1 and the session ID from step 2 in every web service request made during the current user session (until user logs out or closes browser).
I have read a lot about cookies, sessions and the various gems such as devise and authlogic that manage authentication but its all fairly confusing and I can't see how they fit my particular scenario of all authentication and sessions being managed by the web services app and not the rails app.
Can anyone provide any advice on how to achieve the above?
Thanks
P.S The rails app will only be accessed from mobile phone browsers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议阅读使用 Ruby 和 Rails 进行面向服务的设计。它涵盖了一些身份验证服务示例,示例代码可以在此处找到。我不确定您的具体情况是什么,但我计划使用类似于 Amazon S3 的签名来处理经过身份验证的请求。我还没有实现它,但当我实现时我会写一篇关于它的文章。
I recommend reading Service Oriented Design with Ruby and Rails. It covers some auth service examples and the sample code can be found here. I'm not sure what your particular situation is, but I plan to handle authenticated requests with a signature similar to how Amazon S3 does it. I haven't implemented it yet but I'll write an article about it when I do.