[英]How to Secure REST API with API Keys
我的架构由前端服务器和后端/API 服务器组成。 最终用户可以访问 API,但是我希望前端服务器能够访问最终用户无法访问的 API 的某些路由(更高权限)。
这个问题有两个部分:
(1) 我需要为最终用户使用 API 密钥。 这样做的最佳做法是什么?
(2) 前端如何进入API Key系统? 客户需要登录他们的帐户才能访问这些从前端可用的提升权限。 (例如启用 webhook)
我的应用程序托管在 Google Cloud App Engine Standard env 上,我使用的是 node.js 10。如果有人对此架构有任何建议,那就太好了。
我知道这个问题有点笼统,但我花了几个小时在网上四处寻找,我的问题不是如何使用 API 密钥,也不是如何验证前端,而是:做这两个的最佳实践是什么一起?
谢谢,尼基塔
JWT ( https://jwt.io/introduction/ ) 可以帮助解决这个问题。 您可以在请求 header 中包含 API 密钥以及 JWT。 一些服务接受 API 密钥作为 URL 参数,但将此类敏感数据放入 header 是更好的方法。
JWT 可以在用户认证时存储在 cookie 中,并可以与请求一起传输到服务器。
服务器可以使用 API 密钥来验证和解码这个 JWT 使用服务器环境中可用的密钥来授权访问,因为解码这个 JWT 可以揭示用户的类型,因此需要帮助的级别。
与多种变体一起使用的直接方法。 您可以从基本版本开始,并逐步添加图层/功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.