我们已在我们的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订阅。 超级常见,并且找不到任何相关的东西。现在我们告诉人们:“对不起,有些微软账户给我们一个错误,微软不会告诉我们为什么,看起来你不能很好地使用我们的服务。” 在晚上哭了这个 –