您需要为您的 API 设置令牌身份验证。要快速设置一个,您可以安装此 gem:
devise-token-auth
只需按照说明设置您的身份验证系统即可。通过这种方式,您将能够控制谁通过身份验证向您的 API 发出请求。
这个 gem 很棒,因为在安装后,您只需要进行一些非常小的调整即可使其正常工作,从而保护您的 API。
你可能最终会在你的控制器中做这样的事情
before_action: authenticate_user!, only: [:create, :update, ... Any other method you want to protect]`
编辑:详细说明
基本上,您希望保护您的一种或多种资源。您还需要使您的 API 无状态,因此它不会保存任何会话数据。
一旦你安装了 gem,你应该运行:
rails g devise_token_auth:install User auth
这将创建一个用户模型,调整您的 routes.rb 以安装身份验证模块并创建迁移。
那你必须rails db:migrate
正如我所说,有很多方法可以保护您的资源,但最常见的方法之一是运行 authenticate_user!在控制器中的 before_action 上:
before_action: authenticate_user!, only: [:create, :update, ... Any other method you want to protect]
基本上,从现在开始,用户对受保护方法的每个请求都需要进行身份验证。
我建议您阅读更多有关身份验证和 API 的内容。但是,基本上从现在开始,要向您的 API 发出请求,请求的标头必须包含 UID、客户端和令牌。 如果它们不包含这些,则会返回 401 状态作为响应。因此,保护您的 API 免受未经身份验证的请求。
一些有用的教程:
1) link
2)link2