我已经研究了各种方法,但还没有找到一种适合我设置的方法。
我有一个UI,它调用api向用户显示数据——UI不需要有人登录,我也不想对每个用户进行身份验证。我想做的只是保护api,因为有了api的url,任何人都可以访问数据。
在我看来,我可以创建某种类型的密码/apikey,并将其存储为环境变量,无论何时发出请求,都会将其从UI发送到API。在API上,在允许访问该API之前验证该apikey/密码。
这听起来明智吗?你能建议点别的吗?我错过了什么吗。欢迎所有想法。
我觉得这个解决方案不错。你可以这样做:
-
后端:在Node.JS应用程序中创建一个新的REST端点(类似于
/api/get-token
(,该端点生成一个令牌(或ID(,将其保存在本地(可能保存到DBMS中(并将其作为响应返回。然后,在需要保护的每个端点中,从请求中提取令牌,并在发送任何"私有"数据之前,检查提供的令牌是否有效 -
前端:一旦加载了应用程序,就向新创建的REST端点发送请求,并在本地存储给定的令牌(
localStorage
应该可以(。然后,每次UI需要访问"私有"数据时,只需在请求中提供声明即可
实现应该非常直接。