首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安全Rails 5 API

安全Rails 5 API
EN

Stack Overflow用户
提问于 2016-08-27 19:01:13
回答 1查看 761关注 0票数 0

我创建了一个Rails 5API应用程序。我已经为GET请求设置了返回JSON的方法。

数据只能由我来维护,因此我希望应用程序为所有类型的数据创建或更新请求返回401。我怎样才能做到这一点?

此外,如果我注释掉控制器文件中的data、def更新函数,我将如何使用POST请求更新和创建数据?

AIM:- 设置一个安全API,它只接受来自我的域的GET请求,否则返回401。 并在认证后手动接受发布、更新和删除请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-27 19:33:56

您需要为您的API设置令牌身份验证。要快速建立一个,您可以安装这个创业板:

设计-象征性

只需按照说明设置身份验证系统即可。这样,您就可以控制谁通过身份验证来向您的API发出请求。

这个创业板是很棒的,因为在安装之后,您只需要做一些非常小的调整就可以让它正常工作,从而保护您的API。

你可能最终会在你的控制器上做这样的事情。

代码语言:javascript
运行
复制
before_action: authenticate_user!, only: [:create, :update, ... Any other method you want to protect]`

编辑:详细说明

基本上你想保护你的一个或多个资源。您还希望使您的API成为无状态的,因此它不会保存任何会话数据。

一旦安装了gem,就应该运行:

代码语言:javascript
运行
复制
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) 链接 2) link2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39184702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档