从 Facebook Graph iOS SDK 解密或解码 Facebook 访问令牌

问题描述 投票:0回答:1

Facebook iOS SDK 正在以这种格式授予加密或编码的访问令牌:

v9ylvkttPnuFWUX4KVdjDPB0SRXkuKX7z281rqjHuG0.eyJpdiI6ImEwWXBDaEtncWpDTU5ibUNuQWdROWcifQ.Y-DwxRY2ZAFZiP7EVuR-HksXqmGw9LXP6umGrfz2XnjSLm0a508u7_jXq0_Kz5a2S8AUUulzUvIRVxTS51_i6VfSByOCbFBIKoBe0-n-Pa8NC29wbuVmGJLvq4W-ezhv0DzA3diiCIqCybt9ELDXoA

在网络上使用 oAuth,Facebook 以这种格式提供未加密/未编码的访问令牌(这不是真实的):

213455681425|1.BGgrgnfWrdpG_X18.3600.1213252135.2-1334679|dHcDbxGbeYbLg3SRgw12fdf4gd60

如何解密/解码 iOS 访问令牌,以便我可以像使用未编码的令牌一样读取过期 unix 时间值和用户 ID?我需要过期日期的原因是确定它何时过期,并且如果访问令牌已过期但用户尚未撤销publish_stream 访问权限,我需要使用 appID|appSecret 样式访问令牌发布用户 ID。

facebook facebook-graph-api facebook-ios-sdk
1个回答
0
投票

该访问令牌永远不会过期,因为它具有离线访问权限。请参阅此处

在这种情况下,用户似乎通过取消应用程序授权或更改其密码而使访问令牌过期。为了缓解这种情况,请考虑使用应用程序取消授权回调 URL。以下是更多详细信息:

当您的应用程序的用户在应用程序仪表板中删除该应用程序或阻止该应用程序时 新闻源中的应用程序,您的应用程序可以通过指定 在开发者应用程序中取消授权回调 URL。在应用程序删除过程中,我们 将发送包含单个参数的 HTTP POST 请求, signed_request,其中包含刚刚发出请求的用户的用户 ID (UID) 删除了你的应用程序。您不会在此收到用户访问令牌 请求和所有现有的用户访问令牌将自动 已过期。

http://developers.facebook.com/docs/authentication/

© www.soinside.com 2019 - 2024. All rights reserved.