【发布时间】:2011-12-29 18:34:57
【问题描述】:
我找到了这个question,它有一个答案,但是从那以后facebook改变了令牌格式,现在它是这样的:
AAACEdEose0cBACgUMGMCRi9qVbqO3u7mdATQzg[more funny letters]ig8b3uss9WrhGZBYjr20rnJu263BAZDZD
简而言之,你无法从中推断出任何东西。 我还找到了access token debugger,如果您在其中粘贴令牌,它会显示我正在寻找的信息,这很好,但不能帮助我以编程方式完成。
要点是,如果有人为用户获取令牌,他可以使用它来访问图表,这就是我在我的应用程序中所做的 - 我想确保人们正在转发由我的应用程序,而不是另一个。
我的申请流程是:
- 从 facebook 获取访问令牌(没什么特别的,就像在 here 中描述的那样,服务器端流程。(也使用 iPhone 和 android,但如果我没记错的话,它们有类似的流程))
[设备] [facebook] - 使用该访问令牌,设备将使用该令牌访问我的应用服务器
[设备] [乔纳森的应用程序]
在我的服务器上,我将访问令牌附加到用户并使用它在我的应用程序中向该用户授予权限。 (使用 facebook 连接对用户进行身份验证)
我的应用程序是安全的,并且无论 facebook 如何访问都经过身份验证,但是!在这个流程中,我发现的一个薄弱环节是我无法确定我获得的访问令牌是为我的应用程序签名的 - 我不喜欢它,因为我缓存令牌以供离线使用,我希望 100% 确定它们适用于我的应用程序,具有我的权限。
那么,验证我获得的令牌与我的应用程序相关的(最佳)方法是什么(对于与用户的关系,我使用令牌访问 /me 并查看此令牌用于哪个用户)
我不需要解密令牌(我猜它是某种 AES),我只是在寻找一个端点,它会告诉我令牌与我的应用程序 ID 匹配。
(编辑:使用 C# SDK,如果重要的话。但是提供该信息的图形/rest 调用也一样好 :))
【问题讨论】:
-
很棒的问题,很好的答案。这对我来说也是一个缺失的环节。谢谢
标签: facebook facebook-c#-sdk oauth-2.0 facebook-oauth