因此,我正在开展一个项目,以将以前作为 Azure 移动服务托管的应用程序重新部署为 Azure 移动应用程序。所述应用程序具有前端(在 Azure 中托管为 Web 应用程序)和后端 API(这是移动应用程序),直接从前端的 javascript 调用。升级一直进展顺利,直到我开始研究 Microsoft 帐户身份验证部分。按照...的说明进行操作
...让事情大多滚动。我的应用程序已在 Microsoft 帐户开发人员中心注册,我指定了遵循“https://{{my_backend_mobile_app_name}}.azurewebsites.net/.auth/login/microsoftaccount/callback”格式的重定向 URI,我配置了 Microsoft 身份验证/Authorization 在 Azure 中我的移动应用程序的相应刀片中,使用 Microsoft 帐户开发人员中心的 ClientId/Secret。当我测试它时,一切都很顺利:我可以转到我的应用程序的前端并单击“登录”按钮,一个新窗口打开,其中包含 Microsoft 的 Login.Live 站点,提示我使用 Microsoft 帐户登录,我这样做成功并被重定向到 Microsoft 帐户开发人员中心中指定的重定向 URL,它在查询字符串中附加了代码和状态值。
但是,当我被重定向时显示的页面是“您无权查看此目录或页面”。如果我复制 URL,打开一个新选项卡,将其粘贴并按 Enter,它会将我带到“您已成功登录”页面。但是,这两种方法都不会让我回到我的应用程序的前端,它会让我登录并继续进入该站点,因为一切仍在为登录而打开的新窗口中发生。如果我关闭该窗口,身份验证过程会看到作为登录的“取消”并要求我再次登录(这只是重复上述过程)。如果我让窗口保持打开状态并返回带有我的前端站点的窗口,它仍在等待登录过程的响应。
所以这引出了我的主要问题:如何让 Microsoft 帐户身份验证过程实际将登录响应返回到我的前端站点而不是登录窗口?
旁注,我已经将前端和后端的 SDK 从移动服务更新到移动应用程序。这样做时,我必须在我的后端应用程序中添加一个 OWIN 中间件(根据上面链接 #1 中的说明,在“更新服务器项目”标题下)。我目前的假设是,此 OWIN 中间件未正确配置身份验证,并且妨碍了回调正常工作;因此,我在搞乱这app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions());
件作品。