繁体   English   中英

使用jwt保护api密钥而无需身份验证

[英]Secure api keys with jwt without authentication

有没有办法用jwt或任何其他方法保护api响应但没有身份验证(登录页面),以便只有所有者站点才能访问api。 我在google上看到的所有方法和教程都基于jwt的登录系统。

作为一个例子,如果我有休息api像:

router.get('/api/posts', (req, res) => {
 var body = ... // get some via database
 res.json(body);
})

然后我想只通过我的网站使用它: example.com 最重要的是没有身份验证(登录系统)

首先,每个API请求都必须通过https

然后,您可以通过为每个用户提供必须在每次请求时发送的唯一令牌来“保护”特定于用户的API。 也可以检查请求API的用户的主机或用户,并仅允许特定的自定义用户(根据您的需要)。

除此之外:如果您在用户登录同一服务器时需要JSON响应,则可以检查是否已设置给定的cookie或会话,并且该特定用户可以与该特定用户相关联。

如果您对该API执行服务器到服务器请求,则可以检查服务器主机名是否有效并与允许访问的主机名匹配。

您也可以使用加密来保护您的API响应(此处也是:根据您的需要)。 如果是这样,您可以使用类似于GPG / PGP的私钥/公钥加密。 当然,应该只允许应该访问API的人解密响应。

如果您不关心是否有人能够找到API的路径,GUID(全球唯一标识符)可能是一个选项。 GUID网址可能如下所示:

example.com/api/v1/c9a646d3-9c61-4cb7-bfcd-ee2522c8f633

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM