每次调用都需要进行Restful Web服务API用户身份验证

时间:2013-04-07 16:15:28

标签: php android

我需要创建一个REST api来第一次对用户进行身份验证,并根据此用户检索其他信息以进行后续调用。如果我没有弄错,Restful服务是无状态的,因此不需要存储用户信息服务器端。我的问题是如何在没有会话的情况下保证所有后续呼叫的用户身份验证?

需要此服务才能创建可在移动设备上显示信息的Android应用。

2 个答案:

答案 0 :(得分:0)

您可以使用OAuth这是一个广泛使用的标准。

另一种选择是使用基于SSL的BASIC身份验证。任何体面的HTTP库都支持BASIC auth。客户将在第一次提出请求时受到质疑。后续请求需要通过安全线路发送BASIC auth报头。

有一种方法可以将秘密传递给您的客户端,并使用HMAC-SHA256将URL参数的散列发送到服务器。亚马逊这样做,an article that covers如何做到这一点。它没有OAuth那么复杂。

答案 1 :(得分:0)

有许多方法可用,但IMO最好的方法是生成一个AuthToken服务器端,并在成功登录后将其返回给客户端。然后,客户端将每个请求包含在服务器上。

我通常做的是创建密钥的MD5哈希值和用户的id-用户的用户名 - 用户密码 - 以及当前日期时间。然后我将令牌和当前日期时间存储在数据库中。在查找之后我解码令牌并将数据点与db值进行比较,如果它们与用户匹配则是好的。这种方式是无状态的,易于扩展。

相关问题