簡體   English   中英

offline_access令牌是否已在注銷時開始過期?

[英]Have offline_access tokens started expiring on logout?

我有許多PHP腳本可以從我的Facebook個人資料中提取數據。

我使用從Graph Explorer中獲取的訪問令牌設置了這些。

https://developers.facebook.com/tools/explorer/

我確保在生成令牌時,我請求了offline_access擴展權限。

這些腳本可以運行幾個月,但是在最近的幾天里,我注意到每當我注銷Facebook時,令牌都將失效,並且每次都必須重新登錄並獲得一個新的令牌。

我的理解是offline_access令牌可以在注銷后幸存下來,但不能更改密碼。

在這方面有什么改變嗎?

我對此進行了更多研究。

FB正在棄用offline_access權限。 這意味着將不再可能獲得訪問令牌,該訪問令牌授予您的應用開放式權限以查詢用戶數據。

相反,您的應用將必須測試任何現有令牌的有效性,並且該令牌已過期,您將能夠將其交換為新令牌。 以前,如果令牌已過期,則必須再次使用戶通過auth流程來獲得新的令牌,因此,這實際上是一個積極的發展。

請參閱: https//developers.facebook.com/docs/offline-access-deprecation/

在我自己的特定示例中,當我在PHP腳本中使用從Graph Explorer獲得的令牌時,該腳本使用cURL查詢Graph(即獨立於FB上的用戶會話),但是我不能這樣做。

Graph Explorer本身就是一個應用程序,似乎在最近幾天中,它已在其設置中打開了deprecate_offline_access遷移,這意味着通過Graph Explorer獲得的現有offline_access令牌現在將在注銷時過期。

另外,我無法在腳本中發出交換令牌的請求,因為這需要Graph Explorer應用程序的APP SECRET,而我沒有。

因此,作為標准身份驗證過程的一部分獲得的現有offline_access令牌應繼續工作,但通過Graph Explorer獲得的offline_access令牌將無法繼續工作。

這實際上意味着不再需要需要擴展權限的腳本與Graph交互。 現在,所有此類交互都必須在用戶會話內進行。

我可以看到其中的邏輯,但是對於cron作業等的工作有點像扳手。

我可能會懷疑,隨着轉換(雖然編寫了Facebook代碼以處理新舊方式),可能會引入一個錯誤。 如果您可以重現此問題,則應將其作為缺陷提交給Facebook, 網址http://developers.facebook.com/bugs

我已經使用基本訪問令牌和一個全新的應用程序進行了檢查。 我只要求離線權限。 我檢查了短絨衫中的令牌,並說還可以。 我注銷了Facebook,然后重新登錄。然后重新檢查了令牌。 而且肯定它是無效的。 在我的應用程序設置中,我已棄用offline_access設置為Enabled。

對於下一個測試,我將其設置為“禁用”並再次檢查。 果然,Facebook使該令牌無效。

對於下一個測試,我檢查了幾年前創建的應用程序。 它已禁用棄用的offline_access。 並且足夠肯定的是,它能夠使offine訪問令牌保持最新狀態,並且完全沒有使它無效。

我還用我在去年F8會議上創建的應用進行了測試,當我退出Facebook時,它的行為也正確(不使離線令牌無效)。

因此,我想這可能取決於您的應用創建多長時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM