假设您正在设计一个新的 API。API 的使用者是一个定期在后台发送请求的移动应用程序,但您也期望其他使用者,例如 Web 应用程序或服务器。
现在让我们考虑两种方案:
在方案一中,您创建一个接受您的用户名和密码的登录端点,并作为响应发出一个短暂的 JWT。
在方案二中,API 的客户端使用 HMAC 签名对每个请求进行签名,就像 亚马逊保护他们的 API
你会如何比较两者?似乎第二种方案对 API 客户端的计算量更大,但在这两种方案中,这一切都归结为一个您必须保留在设备或服务器上的密钥/密码。它如何使方案二更安全?
那么你有第三个方案,即 OAuth2,但如果不涉及第三方,这是否有意义?
谢谢。