angular - 为什么当我使用 Azure 静态 Web 应用程序时 msal-angular `loginPopup` 会弹出它自己的页面
问题描述
当我调用“msal-angular”的 MsalService.loginPopup 时,它自己的页面会像这样弹出。
当我从 customain 登录并尝试从默认域(从 Azure 静态 Web 应用程序发布)登录时会发生这种情况
import { Inject, Injectable } from '@angular/core';
import { MsalService } from '@azure/msal-angular';
import { LOGIN_REQUEST_TOKEN, LoginRequest, TOKEN_REQUEST_TOKEN, TokenRequest } from './config';
import { defer, from, Observable, of } from 'rxjs';
import { AuthResponse } from 'msal';
import { isIE } from './isIE';
export function checkClientLogin(): boolean {
return !!localStorage.getItem('isLogin');
}
const extraScopesToConsent = [ 'user.read', 'openid', 'profile' ];
@Injectable()
export class MsalAuthService {
constructor(
private msalService: MsalService,
) {
}
login(): Observable<AuthResponse> {
return defer(() => {
if (isIE) {
return this.msalService.loginRedirect({extraScopesToConsent});
} else {
return from(this.msalService.loginPopup({extraScopesToConsent}));
}
});
}
}
解决方案
当您在代码中使用 msal-angular 并对自己进行身份验证时,会出现另一个弹出窗口,将您重定向到 login.microsoftonline.com。如您的代码中所述,它在需要弹出和需要重定向时声明。
Azure 静态应用支持带有模型对话框的 loginPopUp。详细了解 Azure 静态 Web 应用和模型对话框:
https://docs.microsoft.com/en-us/azure/static-web-apps/
https://docs.microsoft.com/en-us/azure/devops/extend/develop/using-host-dialog?view=azure-devops
推荐阅读
- ios - URLSessionDownloadDelegate 进度未更新
- java - DSpace 存储库:REST API 显示 404 错误
- android - 未找到兼容的并排 NDK 版本。默认为 20.0.5594570
- html - Angular 辅助路由器插座不显示任何内容?
- javascript - 用调用栈理解闭包
- android - 从另一个应用程序切换回应用程序以及截屏时导航栏不会重新隐藏?
- python - Python:函数参数组合验证
- android - 如何将字符串从片段发送到类以更改 kotlin 中的 Json API?
- kotlin - 在 Kotlin 上限制用户输入
- json - 运行以下代码时出现错误: