我有一个网站,其中包含通用商品列表。我通过对rails API的axios请求在我的前端获取这些列表。 (我正在使用Redux的动作)
我使用的是Active Model Serializer,因此只需访问网址" http://localhost:3000/items"即可收集我的数据的JSON格式。 (JSON自动设置为通过我的控制器渲染)
我想限制对API的访问,但仍会在我的网站上为所有用户显示这些项目列表,无论他们是否已登录。
有没有办法保护这些数据而不需要登录,同时仍然在前端获取它?
答案 0 :(得分:2)
您可以使用身份验证令牌(使用rails中的before_action
)保护API,并在向API发送请求时将此令牌包含在前端代码中。
Axios示例
axios({
method: 'get',
url: '/items',
headers: { 'Authorization': '<insert token here>' }
});
这意味着用户现在必须阅读您的前端代码才能找到令牌以直接访问API,从而在一定程度上保护您的API,尤其是在您的前端代码被缩小的情况下。