Sim*_*tti 52 architecture authentication api basic-authentication
我目前正在为Web应用程序的公共Web API前面创建一个身份验证系统.鉴于每个用户帐户都有一个API密钥,并且每个请求都必须经过身份验证,我有两种选择:
使用HTTP基本身份验证,就像GitHub一样.
请求必须发送到URL
http://api.example.com/resource/id
with basic authentication
username: token
password: the api key
Run Code Online (Sandbox Code Playgroud)将API令牌作为查询字符串参数传递.
请求必须发送到URL
http://api.example.com/resource/id?token=api_key
Run Code Online (Sandbox Code Playgroud)还有第三个选项是在URI中传递令牌,但老实说我不喜欢这个解决方案.
您会采用哪种解决方案?为什么?
Yar*_*rin 34
最好的选择可能是在标题中使用API密钥(例如'授权:令牌MY_API_KEY')而不是作为url参数:
HTTP Basic Auth的优点:
URL中的API密钥优势:
小智 17
很多时候我不得不考虑如何在API上验证用户/请求,并且在比较更多解决方案之后,我最终使用了我不需要的Amazon解决方案,或者我无法使用OAuth.此解决方案基于签名,防止"中间人"问题,因为基本身份验证和传递简单令牌正在发送纯文本数据.是的,你可以添加ssl,但这会增加系统的复杂性......
Die*_*ini 12
我认为HTTP Basic Auth应该没问题,只是为了满足非常简单的需求.
完整(和最终)解决方案IMHO将实施OAuth提供程序.它并不复杂,它是一个简单的协议,为您提供了很大的灵活性.此外,它似乎是当前的趋势,因为许多大型玩家实现它,并且它得到许多图书馆的支持.
| 归档时间: |
|
| 查看次数: |
67031 次 |
| 最近记录: |