Rails OAuth:无法从 Microsoft Office 365 rest 获取刷新令牌 api

Rails OAuth: Can't get refresh token from microsoft office 365 rest api

我正在尝试弄清楚如何从具有 omniauth 的 office365 用户那里获取刷新令牌。

在我的 devise.rb 文件中,我尝试了两种不同的方法但无济于事:

config.omniauth :microsoft_office365, ENV['OFFICE365_APP_ID'], ENV['OFFICE365_SECRET'],
                  access_type: 'offline',
                  scope: 'https://outlook.office.com/calendars.read'

config.omniauth :microsoft_office365, ENV['OFFICE365_APP_ID'], ENV['OFFICE365_SECRET'],
                  scope: 'https://outlook.office.com/calendars.read, offline_access'

我是不是做错了什么?

事实证明 offline_access 范围不需要在 devise.rb 中定义。您所要做的就是在 Microsoft Application Registration Portal.

中添加范围

对我来说,devise.rb 中的 microsoft_office365 配置行现在看起来像这样:

  config.omniauth :microsoft_office365, ENV['OFFICE365_APP_ID'], ENV['OFFICE365_SECRET'],
                  scope: 'https://outlook.office.com/calendars.read'