我需要提供商提供安全的Restfull服务。我希望用户必须拥有使用REST服务的授权,并且我可以生成使用stadistic或者如果不是注册开发人员,则根本不允许调用REST服务。
我一直在考虑用户在网址中发送电子邮件和密码(http://autor.derf.com/api/search/email?=dsdfd@gmail.com&passwd=dasffsdf;)但不是非常安全。
此外,我已阅读有关oauth 2.0的内容,但文档对Java来说非常糟糕。
还有其他方法可以获得具有授权的RESTful API吗?
我希望通过Iphone,Android,Windows Phone和网络访问Restfull API
提前致谢;)
答案 0 :(得分:1)
如果您打算自己编写服务的所有客户端(iPhone,Android等),那么发送电子邮件和密码是一个不错的选择,只要提供商通过安全传输层(例如SSL / HTTPS)进行通信。 / p>
如果您认为要公开API,则可以随后添加对OAuth 1或2的支持。 (OAUth的整个想法是保护用户的密码,并对客户端可以使用的API以及使用时间进行更细粒度的控制。)
但是,在您的情况下,我至少会考虑使用基本身份验证,其中典型的HTTP请求看起来像这样:
GET /path/to/api HTTP/1.1
Host: www.example.com
Authorization: Basic aHR0cHdhdGNoOmY=
“基本”之后的哈希只是base64编码"username:password"
,或者在您的情况下"email:password"
。如果有人拦截它,很容易简单地解码以获得纯文本用户凭据。所以HTTPS是必须的。