我們已在我們的Web應用程序上實現了Microsoft Azure oauth2,並試圖解決用戶在使用該oauth方法時遇到的常見錯誤。此錯誤可能發生的原因列表:OAuth2 ::錯誤,invalid_grant:AADSTS65001
錯誤:OAuth2 ::錯誤,invalid_grant:AADSTS65001:未爲'...'應用程序配置訪問用戶信息的權限,或者它已過期或被吊銷。類似於我們用azure oauth流程的錯誤中的大約82%。
這裏是我們的配置:
# ==> Office 365 OAuth2
config.omniauth :azure_oauth2,
client_id: '...',
client_secret: '...',
tenant_id: '...',
resource: 'https://outlook.office365.com/',
setup: lambda { |env|
params = Rack::Utils.parse_query(env['QUERY_STRING'])
options = env['omniauth.strategy'].options
case params['state']
when 'calendar'
options[:prompt] = 'login'
when 'select_account'
options[:prompt] = 'login'
end
}
我們知道,這個錯誤可以使用非Office 365帳戶所致。由於我們的資源爲'https://outlook.office365.com/',並且由於我們的應用需要能夠與日曆交互,用戶必須使用Office 365帳戶進行身份驗證。像微軟真實帳戶一樣的其他帳戶將導致此錯誤。
質詢
1 - 還有什麼可能會導致這樣的錯誤?
2 - 是否有辦法限制azure oauth流程只允許真正的office 365登錄?
當用戶沒有無效憑證,當一個全新用戶能夠登錄到他們的郵件時,我們看到這個錯誤 - 他們來和授權我們,我們知道他們有一個真正的office365訂閱。 超級常見,並且找不到任何相關的東西。現在我們告訴人們:「對不起,有些微軟賬戶給我們一個錯誤,微軟不會告訴我們爲什麼,看起來你不能很好地使用我們的服務。」 在晚上哭了這個 –