我的Vue.js应用程序通过Node.js后端与数据交互,可访问敏感数据和非敏感数据。我已经能够使用google身份验证API保护节点服务器上的API,即使用敏感数据(例如更新定价信息)的API。这要求用户必须先使用Google帐户登录才能与这些API进行互动。
我现在正在尝试保护简单地检索非敏感数据的API (例如名称,描述,我销售的产品的价格等),这样即使没有某种形式的身份验证,也无法直接访问所述API。即。如果我使用像Postman这样的东西直接从API检索数据,而不进行身份验证,我将无法获得任何数据。但是,这些API是从Vue.app的一部分访问的,不需要登录。即。网站上的用户无需先登录即可查看产品,定价等信息。
为了保护这些“非敏感”API,我必须将一些“秘密”,例如API密钥从Vue前端传递到Node后端。我相信我已经完成的其他2个帖子(这里和这里)在运行时不可能将环境变量传递到Vue应用程序(我正在使用Vue CLI 3)。这使我不得不将API密钥硬编码到前端代码中,这意味着它不再是“秘密”或安全的。
我本质上是尝试进行“应用程序身份验证”但没有能力在运行时在Vue中传递ENV变量我不知道如何安全地执行此操作。
我在互联网上看到的一切都指向:
在构建时将ENV变量传递给Vue(在这种情况下不安全); 要么
我错过了一些想要在运行时首先将ENV变量传递给Vue的东西。
问题:我是否通过尝试保护不敏感的数据来过度思考或过度复杂化?
这样做的一种方法如下:
验证成功后,生成JSON Web令牌
将令牌发送回客户端(Vue应用程序)并将其存储在浏览器的本地存储中
在您要保护的API路由上添加一个函数,该函数将检查请求是否包含您在步骤2中提供的令牌。您可以将令牌作为请求正文的一部分或可能是标头发送。
这是一种保护API的简单而有效的方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。