Tho*_*hle 70 authentication rest url http api-key
我正在为我公司的数据设计一个公共API.我们希望应用程序开发人员注册API密钥,以便我们可以监控使用和过度使用.
由于API是REST,我最初的想法是将此密钥放在自定义标头中.这就是我见过谷歌,亚马逊和雅虎的方式.另一方面,我的老板认为,如果密钥只是URL的一部分,那么API更容易使用,等等" http://api.domain.tld/longapikey1234/resource ".我想有一些事情可以说,但它违反了URL的原则作为你想要的简单地址,而不是你想要它的方式或原因.
您是否认为将密钥放在URL中是合乎逻辑的?或者,如果将简单的javascript前端写入某些数据,您是否还不必手动设置HTTP标头?
Dar*_*ler 65
它应该放在HTTP Authorization标头中.规范在这里https://tools.ietf.org/html/rfc7235
sta*_*and 63
如果你想要一个可能吸引老板的论点:想想一下URL是什么.网址是公开的.人们复制并粘贴它们.他们分享他们,他们把它们放在广告上.没有什么能阻止某人(有意或无意)邮寄该URL以供其他人使用.如果您的API密钥位于该URL中,则每个人都拥有它.
Fiz*_*han 11
最好在标头中使用API密钥,而不是在URL中.
如果从浏览器尝试,URL将保存在浏览器的历史记录中.这种情况非常罕见.但是当后端服务器记录所有URL时会出现问题.它可能会暴露API密钥.
有两种方法,您可以在标题中使用API Key
基本授权:
条纹示例:
curl https://api.stripe.com/v1/charges -u sk_test_BQokikJOvBiI2HlWgH4olfQ2:
Run Code Online (Sandbox Code Playgroud)
curl使用-u标志传递基本身份验证凭据(在API密钥之后添加冒号将阻止它询问您的密码).
自定义标题
curl -H "X-API-KEY: 6fa741de1bdd1d91830ba" https://api.mydomain.com/v1/users
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
100627 次 |
最近记录: |