我目前正在为一个Web应用程序创建面向公共Web API的身份验证系统。考虑到每个用户帐户都有一个API密钥,并且每个请求都必须经过身份验证,我有两个选择:
使用HTTP基本身份验证,就像GitHub一样。
请求必须发送到URL
http://api.example.com/resource/id with basic authentication username: token password: the api key
以查询字符串参数形式传递API令牌。
请求必须发送到该URL
http://api.example.com/resource/id?token=api_key
还有第三种选项,就是在URI中传递令牌,但我个人不喜欢这种解决方案。
你会选择哪种解决方案?为什么?