Rails API身份验证,无需登录

时间:2018-04-06 19:23:13

标签: ruby-on-rails api redux jwt

我有一个网站,其中包含通用商品列表。我通过对rails API的axios请求在我的前端获取这些列表。 (我正在使用Redux的动作)

我使用的是Active Model Serializer,因此只需访问网址" http://localhost:3000/items"即可收集我的数据的JSON格式。 (JSON自动设置为通过我的控制器渲染)

我想限制对API的访问,但仍会在我的网站上为所有用户显示这些项目列表,无论他们是否已登录。

有没有办法保护这些数据而不需要登录,同时仍然在前端获取它?

1 个答案:

答案 0 :(得分:2)

您可以使用身份验证令牌(使用rails中的before_action)保护API,并在向API发送请求时将此令牌包含在前端代码中。

Axios示例

axios({
  method: 'get',
  url: '/items',
  headers: { 'Authorization': '<insert token here>' }
});

这意味着用户现在必须阅读您的前端代码才能找到令牌以直接访问API,从而在一定程度上保护您的API,尤其是在您的前端代码被缩小的情况下。