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

问题描述 投票:-1回答:2

我有一个基于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",
    },
],
}

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

laravel api vue.js
2个回答
0
投票

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


0
投票

您正在寻找Laravel Passport

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

使用Passport,只有经过身份验证的用户才能通过API访问您的数据。阅读上面链接中的文档,然后尝试一下。

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

{
    "message": "Unauthenticated"
}

使用JavaScript使用API​​

Laravel提供了一个middleware,允许您使用JS应用程序中的api。从文档:

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

'web' => [
   // Other middleware...
   \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
],

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.