Authentication 在HTTP身份验证头中传递Foursquare令牌。可能吗?

Authentication 在HTTP身份验证头中传递Foursquare令牌。可能吗?,authentication,foursquare,Authentication,Foursquare,我正在构建一个包含两个方面的应用程序:客户端(iPhone)和服务器(PHP)。使用https进行通信。手机获得4SQ接入令牌。然后,它将该令牌发送到服务器,服务器将使用该令牌进行4SQ API调用。我的问题是如何发送此令牌 我的想法是将令牌包含在HTTP身份验证请求的头中,但在阅读了有关基本/摘要身份验证的内容后,我怀疑这不是实现的方法。实际上,对4SQ API的调用是使用请求参数完成的 oauth_令牌=访问_令牌 而不是将令牌放在身份验证标头或任何其他位置。我相信这是有原因的,但我找不到

我正在构建一个包含两个方面的应用程序:客户端(iPhone)和服务器(PHP)。使用https进行通信。手机获得4SQ接入令牌。然后,它将该令牌发送到服务器,服务器将使用该令牌进行4SQ API调用。我的问题是如何发送此令牌

我的想法是将令牌包含在HTTP身份验证请求的头中,但在阅读了有关基本/摘要身份验证的内容后,我怀疑这不是实现的方法。实际上,对4SQ API的调用是使用请求参数完成的

oauth_令牌=访问_令牌

而不是将令牌放在身份验证标头或任何其他位置。我相信这是有原因的,但我找不到

那么,哪种选择是最好的呢

  • 电话将令牌作为请求参数发送到PHP服务器,就像4SQ一样
  • 手机在身份验证头中将令牌发送到PHP服务器(身份验证是哪种?)
  • 还有别的办法吗

我想最安全、最合理的方式应该是HTTPS帖子。当令牌是HTTPS请求中查询字符串的一部分时,它也会被加密。但它将在服务器日志中以明文显示,或者,当使用浏览器时,它也可能出现在浏览器历史记录中。根据HTTP帮助程序库,它还可以在请求失败时记录HTTPS URL


在我看来,在身份验证头中发送令牌会很奇怪,因为它不用于服务器和客户端之间的身份验证。

我忘了提到一些东西。服务器生成JSON输出并将其发送到客户端。任何时候都不涉及HTML/XML。嗯。。。我明白你的意思,但我将提供更多的上下文:我正在构建一个4SQ mashup。一个代表用户与4SQ通信的服务器,为iPhone/Android客户端提供REST API。当这些客户机注册时,他们将其4SQ令牌发送到服务器。如何发送此令牌?HTTP认证头?你说得对:它不用于身份验证,只是一个“这是我的4SQ令牌,以我的名义使用它”。将其作为POST变量发送是一种更好或更正确的方法?除此之外,我还有另一个问题。我希望客户端在注册时向我的服务器发送的唯一与身份验证相关的东西是4SQ令牌。没别的了。我真的不想处理用户/密码问题。如果一个客户端向我的服务器发送一个有效的4SQ令牌,服务器就会信任它。这就是我的方法。使用这种方法,我需要在每个客户机-服务器请求中使用4SQ令牌。我想在我的服务器中基于4SQ令牌生成第二个令牌,并使用它代替4SQ令牌。但我不知道使用哪种方法生成第二个令牌,或者这在概念上是否正确……当您不需要为用户保存任何内容时,在每个请求中发送Foursquare令牌可能是最好的解决方案。否则,您可以为用户生成一个唯一的id,并将OAuth令牌与此id一起保存(例如)。在这种情况下,攻击者可能会滥用您的API,而不会直接访问用户的Foursquare帐户。