2011-03-07 43 views
5

我读过,编写web服务以便从移动应用程序中使用的一种好方法是避免SOAP(太冗长)并使用REST;在许多REST示例中,我已经看到最好避免由于REST的无状态性而导致的会话...但是如何在调用我的webservice时确保安全性?我想进行“登录”呼叫,然后将session_id /令牌传递给下一个Web服务调用...我该怎么做?如何处理PHP REST Web服务中的身份验证?

回答

3

您可以通过用户令牌(和会话,或任何其它身份验证数据,如果你需要它)像一个JSON请求:

{"auth": {"session_id": "abc", "token":"123"}, 
"data": "your request data" 
} 

如果你是疯了安全性,您可以生成每个后一个新的令牌用户登录,甚至有令牌的生命时间。

+0

那与RESTfullness?它不只是解决问题吗? – xtofl 2011-03-07 18:19:48

4

最简洁的方式是使用HTTP身份验证。 虽然这不会通过你提到的login + sessionid方式去做,但它会更清晰和更直接(API调用与其他API调用无关,并且客户端不需要期望会话超时等)。

+0

但是你如何在你的web服务器中实现呢?我的意思是我应该在Linux apache Web服务器上进行HTTP身份验证? – 2012-11-03 11:28:58

+0

什么都没有。您可以通过检查'$ _SERVER'数组中的相关字段并发送一个401头(如果它们不存在或不匹配有效用户)来纯粹在PHP中执行此操作。 – ThiefMaster 2012-11-03 11:30:25