2017-03-11 15 views
0

Outlook 또는 Office 365 계정을 가진 사용자의 연락처 및 기타 정보에 액세스해야하는 웹 응용 프로그램을 개발 중이며 Office365 계정에 대한 오프라인 액세스 문제가 있습니다.Office 365와 Outlook OAuth2 offline_access refresh_token 요청의 불일치

초기 인증시 코드가 제대로 작동하고 Outlook 및 Office 365 계정에 필요한 모든 항목에 액세스 할 수 있습니다.

초기 액세스 토큰이 만료 된 후에 불일치가 나타납니다. Outlook 계정의 경우 액세스 토큰을 항상 새로 고칠 수 있지만 Office 365 계정의 경우 "400 Bad Request"오류와 동일한 코드가 실패합니다.

Office 365 계정에 대해 toke 액세스를 새로 고칠 때 뭔가 다른 점이 있지만 필자가 알아낼 수없는 것처럼 느껴집니다. 사용자가 Otlook vs. Office 365를 사용했는지 여부를 알 수는 없습니다. 계정이 나중에 알아낼 수 있습니다.

내가 사용하는 기관 URL은 https://login.microsoftonline.com/common/oauth2/v2.0/token이며 Outlook과 Office 365에서는 다를 수 있지만 refresh_token 요청을 제외한 다른 모든 계정 유형에서는 다른 모든 것이 작동하는 것으로 보입니다.

감사합니다. 감사합니다.

+0

예제 새로 고침 요청을 게시 할 수 있습니까? 어쩌면 우리는 잘못된 것을 발견 할 수 있습니다. –

+0

음, 고마워요! 이제 나는 바보 같지만 문제를 해결했습니다. 새로 고침 요청에서 전송 된 redirect_url에 내 호스트 이름이 포함되어 있지 않습니다. ... 재미있는 점은 outlook.com 계정의 경우 Office365 계정의 경우 문제가되지 않는 것으로 보입니다. 이상한 .... –

+0

아, 그래, 전체 URL을 포함하는 것이 가장 좋습니다 :). 답변으로 게시해야합니다. –

답변

0

이것은 이상한 일이지만 문제의 해결책은 새로 고침 토큰 요청에 사용 된 redirect_url 매개 변수가 호스트 이름을 포함하여 등록 된 리디렉션 URL과 정확히 일치하는지 확인하는 것입니다.

놀랍게도 이는 Office 365 계정과 새로 고침 토큰 요청에만 해당됩니다. Outlook 및 Office 365 계정의 다른 모든 API는 제공된 리디렉션 URL을 고려하지 않고 대신 앱에 등록 된 것을 사용합니다.