如何保护对提供 REST API 访问的 rails 服务器的访问

How to secure access to rails server which provides REST API access

如何保护对提供 REST API 访问的 rails 服务器的访问。 我们使用 Devise 进行身份验证。 我们的 Rails 应用程序与另一个 Rails 服务器(服务应用程序)通信,我们希望用户在访问服务应用程序之前进行身份验证。我应该通过设备身份验证令牌来完成吗?好心提醒?服务层面应该做什么

https://github.com/plataformatec/devise
https://github.com/lynndylanhurley/devise_token_auth

好吧,这取决于您的应用架构。 您可以使用设计来验证 REST API 中的用户。 但是如果你的Service App只供内部使用,例如它只为另一个应用程序提供数据,你可以通过ip限制访问,或者Basic HTTP auth。

我认为,该设计仅适用于授权最终用户,不适用于服务。

在我看来,这个问题目前是高度基于意见的。

Service App 的用途是什么?您的 Rails 应用是否经常从服务应用中消费?或者反过来?它是否仅用于记录目的,例如统计信息或类似标签的资源或关键数据(例如凭证)?

根据我的经验,如果实际最终用户需要访问它来修改资源(POST、PUT、DELETE),我会选择基于令牌的身份验证。如果它只需要阅读,我可能只使用 Basic 或 none,具体取决于上下文。

无论哪种方式,如果 Devise 是适合您自己场景的精确工具,我都会考虑两次。不止几次,我发现自己为实际修改 Devise 而编写的代码比实现自己的身份验证系统所必需的代码要多。没那么难,你学到了很多东西!