我正在將Microsoft OneDrive支持添加到我的僱主向其他公司銷售的產品中。當我經歷了我的設計和原型階段時,我使用的應用程序ID通過應用程序註冊獲得,我使用了我的個人帳戶。現在,我正在努力將代碼實際添加到我們的產品中,並使用通過我們公司Office365帳戶完成(由其他人完成)的應用程序註冊獲得的應用程序ID。Microsoft OAuth2身份驗證不返回刷新令牌
我在這兩個應用程序註冊之間的身份驗證結果中遇到不同。我試圖找出原因,我希望有人在這裏可以提供幫助。
當我從我的個人帳戶使用註冊時,我收到了來自/token
url的所有數據項,這些數據項都記錄在Microsoft聯機文檔中。當我切換到使用我們公司帳戶的註冊時,除了應用程序ID之外,沒有更改代碼,我沒有得到refresh_token
值。我在兩次測試中使用相同的登錄憑證。
使用我的個人註冊時,這裏的信息:
網址:https://login.microsoftonline.com/common/oauth2/v2.0/token
請求正文:grant_type=authorization_code&client_id={XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}&code=XXXXXXXXXXXXXX...XXXXXXXXXXXXXXXX
請求響應:
{
"token_type":"Bearer",
"scope":"https://graph.microsoft.com/files.readwrite.all",
"expires_in":3599,
"ext_expires_in":0,
"access_token":"XXXXXXXXXXXXXX...XXXXXXXXXXXXXXXX",
"refresh_token":"XXXXXXXXXXXXXX...XXXXXXXXXXXXXXXX"
}
使用我們的企業註冊時,這裏的信息:
地址:https://login.microsoftonline.com/common/oauth2/v2.0/token
請求體:grant_type=authorization_code&client_id={YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}&code=YYYYYYYYYYYYYY...YYYYYYYYYYYYYYY
請求響應:
{
"token_type":"Bearer",
"scope":"https://graph.microsoft.com/files.readwrite.all",
"expires_in":3599,
"ext_expires_in":0,
"access_token":"YYYYYYYYYYYYYY...YYYYYYYYYYYYYYY"
}
除了用於client_id
和code
,即不同的唯一事情的值是應用程序註冊(一個使用個人帳戶和使用公司Office365帳戶的其他帳戶)。這可能是什麼原因?通過我們的公司帳戶註冊是否有缺失?
我沒有查看公司註冊的權限,所以我無法比較他們把它和我在我的個人註冊中的對比。我給了他們所有相關的信息,但我不知道他們是否做了我所要求的一切。