如何实现无状态REST API

时间:2010-10-05 14:41:52

标签: api rest stateless

我正在开发一个REST API,供开发人员编写移动应用程序使用。用户将能够使用第三方服务(Google,Twitter等)进行身份验证,这主要由OAuth处理(取决于相关服务)。我们在客户端应用程序和API服务器之间使用2脚OAuth(消费者密钥/密钥是特定于应用程序的,开发人员在应用程序注册时从我们的站点获取它)。

我的问题是如何处理以无状态方式跟踪用户身份验证。我没有用户凭据来发送每个请求。我可以在用户登录时创建一个唯一的session_id,然后在每个REST API请求中都要求它。我的问题还有其他解决方案吗?使用唯一的session_id来识别用户是否会导致无状态REST API视角出现任何问题?

1 个答案:

答案 0 :(得分:10)

免责声明:我不是安全专家。

不要将其称为session_Id。将其称为身份验证令牌,并使用您自己的身份验证方案将其传递给Authorization HTTP标头。有关示例,请参阅Google AuthSub

请勿将此身份验证令牌用于识别用户以及确定他们是否有权执行请求之外的任何其他内容。不要将任何状态与令牌关联,也不要根据它来检索用户首选项。