假設我的應用程序希望代表第三方的用戶請求權限A和B.處理Facebook API權限跳過/撤銷每個OAuth 2.0 RFC
根據OAuth 2.0 RFC,第三方不需要授予這些權限。但是,如果返回的權限與我的應用程序請求的權限不相同,則授予的範圍將在第三方響應中返回。
通過閱讀Facebook文檔並檢查Facebook返回的響應,當我模擬跳過/拒絕流時,看起來授予的範圍不會返回,並且我的應用程序需要進行api後續調用以查看哪些權限是理所當然的。
這是正確的嗎?
假設我的應用程序希望代表第三方的用戶請求權限A和B.處理Facebook API權限跳過/撤銷每個OAuth 2.0 RFC
根據OAuth 2.0 RFC,第三方不需要授予這些權限。但是,如果返回的權限與我的應用程序請求的權限不相同,則授予的範圍將在第三方響應中返回。
通過閱讀Facebook文檔並檢查Facebook返回的響應,當我模擬跳過/拒絕流時,看起來授予的範圍不會返回,並且我的應用程序需要進行api後續調用以查看哪些權限是理所當然的。
這是正確的嗎?
簡答:是的,你這樣做。
較長的答案: 進行API調用來https://graph.facebook.com/me/permissions?access_token=OAUTH_ACCESS_TOKEN_HERE
- 在PHP或JS SDK可以簡化這個剛剛/me/permissions
的SDK將包裹服務器和訪問令牌爲您服務。
這顯示當前由該用戶授予應用程序的所有領域,例如輸出爲:
{
"data": [
{
"installed": 1,
"manage_friendlists": 1,
"status_update": 1,
"photo_upload": 1,
"video_upload": 1,
"create_event": 1,
"create_note": 1,
"share_item": 1,
"publish_stream": 1,
"publish_actions": 1,
"user_about_me": 1,
"friends_activities": 1
}
]
}
由於用戶可以追溯移除先前授予的權限,你需要從時間做這個時間反正,因爲即使您在特定權限請求中授予的範圍進行了回調,用戶也可以在幾乎立即撤銷其中的某些/全部。
謝謝......希望它符合RFC,但我只是失去了一些東西=) – Dirk