我正在創建一個應用程序,需要從Microsoft Work帳戶請求用戶授權。並偶然陷入了這兩次。爲什麼Microsoft Oauth2 API會更改授權請求的範圍?
起初,我只是想閱讀用戶的電子郵件,所以我要求以下範圍:
- User.Read
- Mail.Read
- Mail.ReadWrite
- 郵件.ReadWrite.Shared
- Mail.Read.Shared
不過,我一直getti ng「範圍已更改」錯誤,並且注意到來自Microsoft的授權響應自動將範圍包括到請求中,即使我沒有請求它並且它不存在於授權網頁上。
我的用戶不關心額外的認證,所以我只是加了Mail.Send我的要求,並繼續前進。精細。
我現在需要在範圍列表中包含offline_access,以便我可以獲取刷新令牌並讓應用程序在後臺運行。但是當我這樣做時,即使授權頁面顯示「離線訪問您的數據」並且在身份驗證過程中沒有錯誤發生,微軟仍然會以缺少'offline_access'授權的授權請求回覆我,但是我的Oauth2流被打破了「範圍發生了變化「錯誤:
Scope has changed from "mail.readwrite mail.read.shared mail.read
mail.readwrite.shared mail.send offline_access user.read" to "mail.readwrite
mail.read.shared mail.read mail.readwrite.shared mail.send user.read"
那麼這是Microsoft Oauth流程中的錯誤,還是我做錯了什麼?
編輯:我審查了該申請的權限上https://apps.dev.microsoft.com/和「offline_access」範圍沒有被列入其中,或任何其他範圍看似相關。也許這意味着Graph還不支持該範圍,儘管它有大量文檔記錄?
列出了'offline_access'作用域。我可以證實這一點。 – GunnerFan