laravel - 使用 API 和隐藏响应的最佳方式是什么
问题描述
我有一个基于 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 护照。
Laravel 使用 Laravel Passport 使 API 身份验证变得轻而易举,它在几分钟内为您的 Laravel 应用程序提供了完整的 OAuth2 服务器实现。
使用Passport
,只有经过身份验证的用户才能通过 API 访问您的数据。阅读上面链接中的文档并尝试一下。
如果未经过身份验证的用户通过在浏览器中键入 url 来访问您的 api,他将得到以下响应:
{
"message": "Unauthenticated"
}
使用 JavaScript 使用 API
Laravel 提供了一个中间件,允许您从 JS 应用程序中使用您的 api。从文档:
通常,如果您想从 JavaScript 应用程序使用 API,则需要手动向应用程序发送访问令牌,并将其与每个请求一起传递给您的应用程序。但是,Passport 包含一个可以为您处理此问题的中间件。您需要做的就是将
CreateFreshApiToken
中间件添加到文件中的 Web 中间件组中app/Http/Kernel.php
:'web' => [ // Other middleware... \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class, ],
希望能帮助到你。
推荐阅读
- python - python从嵌套字典中获取所有值
- wordpress - 将商品添加到购物车后,Wordpress 从产品页面删除查看购物车链接
- android - 如何从 Android 连接到配对的 ble 设备?
- c# - 验证第二列是否针对第一列重复进行排序
- java - 在 Android Studio 的 Retrofit2 回调中等待请求
- firebase - Flutter Bloc 与 firebase 查询有多种关系
- c++ - C ++中tcp非阻塞服务器中的POST请求
- dropbox - Dropbox API 将我连接到错误的文件夹
- html - 导航栏前有 0 个空格
- azure-container-service - az aks install-connector 失败“--name uknow 参数”