Microsoft oAuth 2.0 实施有何变化?

What has changed in Microsoft oAuth 2.0 implementation?

我有一个网站,三年多来一直使用 Microsoft 帐户进行身份验证。它是一个 Node 网络应用程序,使用 passport-windowslive 包。

最近,当 login.live.com 的 return 用户使用他们的 Microsoft 帐户成功登录后,有时会收到以下两种错误之一:

The provided value for the input parameter 'scope' is not valid. The target '«my web site domain»' does not exist.

或:

The provided value for the 'code' value is not valid. The code has expired.

错误是偶发的。我无法在我的开发机器上重现它。

由于passport-windowslive 包最后一次更改是四年前,而我的代码已经两年多没有更改,原因看起来是在Microsoft 端。发生了什么变化?


更新:问题越来越严重了。以前,有时可以通过使用隐身浏览器会话或更改浏览器来解决该问题。现在它正在所有浏览器上发生。但是当 运行 在本地主机上(没有 http)时,我仍然无法重现错误。

Microsoft 已更改其应用程序用于 oAuth 的方式。它们现在必须从 Azure 而不是 apps.dev.microsoft.com 或 Microsoft Live 进行管理。

在 apps.dev.microsoft.com 中配置的现有应用程序将导致:

AADSTS700016: Application with identifier '000000xxxxxxx' was not found in the directory 'aaaaaaaa-bbbb-cccc-ddd-eeeeeeeeeeee'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.

passport-windowslive 模块以某种方式没有冒出错误响应。