可以说您正在设计一个新的API。 API的使用者是一个移动应用程序,它会在后台定期发送请求,但是您也希望其他使用者,例如Web应用程序或服务器。
现在让我们考虑两种方案:
在方案一中,您将创建一个接受您的用户名和密码的登录端点,并作为响应发出短暂的JWT。
在第二个方案中,API的客户端使用HMAC签名对每个请求进行签名,就像 Amazon protect their API
您如何比较两者?似乎第二方案对于API客户端而言在计算上更加密集,但是在两种方案中,它们都归结为一个必须在设备或服务器上保留的秘密密钥/密码。如何使第二号方案更安全?
那么您拥有的第三方案是OAuth2,但是如果没有第三方参与,是否有意义?
谢谢。