Oauth 2.0 Fitbit授权后如何识别应用程序用户

Oauth 2.0 Fitbit授权后如何识别应用程序用户,oauth-2.0,fitbit,Oauth 2.0,Fitbit,假设应用程序数据库中的用户id为100的用户使用端点通过Fitbit启动OAuth 2.0授权,并通过回调获得授权 我们如何识别哪个用户获得授权,以便存储访问令牌和刷新令牌?回调URL不能包含用户id 100,因为Fitbit配置不允许在重定向URL中使用额外参数 或者是否有其他方法来识别授权用户?对于OAuth 2.0的工作原理,似乎存在一些误解 在您的问题中,您使用callback这个词,就好像Fitbit服务器要向该URL发出HTTP请求一样,但它不是这样工作的。发生的情况是,显示Fitb

假设应用程序数据库中的用户id为100的用户使用端点通过Fitbit启动OAuth 2.0授权,并通过回调获得授权

我们如何识别哪个用户获得授权,以便存储访问令牌和刷新令牌?回调URL不能包含用户id 100,因为Fitbit配置不允许在重定向URL中使用额外参数


或者是否有其他方法来识别授权用户?

对于OAuth 2.0的工作原理,似乎存在一些误解

在您的问题中,您使用callback这个词,就好像Fitbit服务器要向该URL发出HTTP请求一样,但它不是这样工作的。发生的情况是,显示Fitbit授权页面的用户代理接收到一个
HTTP302FOUND
响应,该响应带有包含重定向URI的
Location
头。因此,这是一个响应,而不是回调,它指示用户代理加载
位置
头中指定的URI(如果用户代理是浏览器,它将加载)

通常,您会将
redirect_uri
设置为应用程序中用户已登录的页面,以便从会话数据中识别用户id(就像您在应用程序中的任何其他页面一样)

如果出于某种原因,上述方法不适用于您,那么您可以在将用户重定向到Fitbit的OAuth 2.0授权页面时使用
state
query参数。Fitbit的文档描述了
状态
参数,如下所示:

提供当用户重定向回应用程序时可能对应用程序有用的任何状态。此参数将完全按照应用程序的指定添加到重定向URI中


state
参数是OAuth 2.0的标准特性,因此这不是Fitbit特有的。它可以与正确实现OAuth 2.0的任何服务一起使用。

您根本没有提到任何编程语言