我在这个题目上发现了不少问题,但却找不到任何答案:
我应该用用户的用户名和密码,还是用API密钥来验证用户呢?每种方法的优缺点是什么。
我之所以这样问,是因为在我的API中,有几种方法我想锁定并验证用户是否可以访问某些文档或操作。我有点不愿意通过让用户发送带有用户名和密码的HTTP头来进行身份验证,因为它感觉不安全,对用户来说更麻烦一些。另一方面,如果我使用API密钥,用户创建密码的意义是什么?因为他们将不再使用它来访问API的特性。
更新
如果其他读者对我最终使用的内容感到好奇,我决定复制亚马逊如何进行验证(很好的解释这里:https://www.ida.liu.se/~TDP024/labs/hmacarticle.pdf)。
发布于 2011-09-30 06:15:45
您可以在SSL上使用HTTP身份验证,这是足够安全的。但是,它使API的使用变得有点困难,因为它需要客户端库支持SSL。如果同时期望调用太多,SSL也会影响性能。
API密钥选项与没有SSL的HTTP身份验证一样不安全。如果您不关心安全性,那么API密钥对于API的使用者来说是最容易的。
发布于 2011-09-30 06:16:11
一种很好的方法是有一个登录方法,使用用户名和密码(希望通过TLS)。如果他们成功的话,就给他们一个到期的令牌;其他API调用必须包含此令牌才能成功。
https://stackoverflow.com/questions/7606559
复制相似问题