如何使用API 密钥保护REST API

问题描述 投票:1回答:1

我的体系结构由前端服务器和后端/ API服务器组成。最终用户可以访问该API,但是我希望前端服务器能够访问最终用户无法访问的API的某些路由(更高的特权)。

此问题分为两部分:

(1)我需要为最终用户使用API​​密钥。最佳做法是什么?

((2)前端如何在API密钥系统中发挥作用?客户将需要登录其帐户以访问前端提供的这些提升的特权。 (例如启用网络钩子)

我的应用程序托管在Google Cloud App Engine Standard env上,我使用的是node.js10。如果有人对本体系结构有任何建议,那将是非常棒的。

我知道这个问题有些笼统,但我花了几个小时在网上环顾四周,我的问题不是如何使用API​​密钥,也不是如何对前端进行身份验证,而是:什么是最佳实践这两个在一起?

谢谢,尼基塔

node.js rest authentication backend api-key
1个回答
2
投票

JWT(https://jwt.io/introduction/)可以帮助您。您可以在请求标头中包含API密钥和JWT。一些服务接受API密钥作为URL参数,但是将此类敏感数据放在标头中是更好的方法。

JWT可以在用户进行身份验证时存储在cookie中,并且可以与请求一起传输到服务器。

服务器可以使用API​​密钥来验证和解码JWT,并使用服务器环境中用于授权访问的密钥,因为对该JWT进行解码可以揭示用户的类型,因此,帮助可以确定所需的访问级别。

直接使用多个变体的方法。您可以从基本版本开始,然后继续逐步添加图层/功能。

© www.soinside.com 2019 - 2024. All rights reserved.