在为我们的网络应用设计API时,我们将使用其子域作为"用户名"并生成API密钥/共享密钥.首先,可以使用子域作为用户名吗?我没有看到生成另一个密钥的好处.
不同的API似乎做两件事之一:
在每个请求中,用户名都设置为子域和API密钥的密码.由于我们使用SSL,因此这应该是安全的欺骗.
着名的API:Google Checkout,Freshbooks,GitHub,Zendesk
通常通过对键/值对进行排序并使用具有共享密钥的HMAC-SHA1来生成签名来实现.然后,签名随请求一起发送,并在另一端验证.
着名的API:Google Checkout,亚马逊AWS
PS:毫无疑问,Google Checkout支持两者
编辑:只需阅读OAuth 2正在删除签名,转而通过SSL发送用户名/密码.
任何人都有关于选择什么的意见:SSL vs Signature?