7

我正在开发一个 REST API,供编写移动应用程序的开发人员使用。用户将能够使用 3rd 方服务(Google、Twitter 等)来验证自己,这主要由 OAuth 处理(取决于相关服务)。我们在客户端应用程序和 API 服务器之间使用 2-legged OAuth(其中消费者密钥/秘密是特定于应用程序的,当应用程序在那里注册时,开发人员会从我们的站点获取它)。

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

4

1 回答 1

10

免责声明:我无论如何都不是安全专家。

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

请勿将此身份验证令牌用于识别用户并确定他们是否有权执行请求之外的任何事情。不要将任何状态与令牌相关联,也不要根据它检索用户偏好。

于 2010-10-05T16:32:10.410 回答