[英]How can I send secure API requests from SvelteKit app, without showing API keys on the client side?
[英]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.