什么是使用API​​和隐藏响应的最佳方法

时间:2019-09-26 23:32:33

标签: laravel api vue.js

我有一个基于Laravel和Vue构建的SPA网站。

我正在使用axios来获得响应,并且一切正常。

大多数数据是供应商,类别和产品,并且其中没有任何敏感信息,但是产品包含一些我需要在前端使用的数据,但是我不希望竞争对手抓住这些数据。

我该怎么做?所以我得到了数据,但它也被隐藏了?

所以我想可能是先将其加密然后解密,但是不确定这是否正确

{

"Products": [
    {
        "ID": 9950,
        "VID": 114,
        "Name": "TBH Special Burger ",
        "Category": 224,
        "Description": "",
        "Image": "",
        "Price": "250",
        "DisplayPrice": 0,
        "DealPrice": 0,
        "Percentage": "15",
        "Cust_Percentage": "0.00",
        "DateTime": "2018-10-08 19:03:40",
    },
],
}

在上述响应中,我仅尝试保护与百分比相关的数据。

2 个答案:

答案 0 :(得分:1)

您正在寻找Laravel Passport

  

Laravel使用Laravel Passport使API身份验证变得轻而易举,它可以在几分钟内为您的Laravel应用程序提供完整的OAuth2服务器实现。

使用Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim dt As New DataTable Dim r = dt.Compute("((5000 / 30) * (22 + 6)) + ((5000 / 30 / 8) * (20))", Nothing) Debug.Print(r.ToString) End Sub ,只有经过身份验证的用户才能通过API访问您的数据。 阅读上面链接中的文档,然后尝试一下。

如果未经身份验证的用户通过在浏览器中输入网址来访问您的api,这将是他的响应:

Passport

使用JavaScript消费API

Laravel提供了中间件,可让您使用JS应用程序中的api。从文档中:

  

通常,如果要使用JavaScript应用程序中的API,则需要手动向应用程序发送访问令牌,并将其与每个请求一起传递给应用程序。但是,Passport包含可以为您处理此问题的中间件。您需要做的就是将{ "message": "Unauthenticated" } 中间件添加到CreateFreshApiToken文件中的Web中间件组中:

     
app/Http/Kernel.php

希望有帮助。

答案 1 :(得分:0)

您可以使用 API资源来指定要显示的字段 看一下文档: https://laravel.com/docs/5.8/eloquent-resources