我目前正在学习Angular和MSAL,但无法弄清如何实现以下内容:
- 当用户访问Web应用程序时,应该出现Microsoft登录(通过Azure AD)
- 认证成功后,Web应用程序会出现
- 当用户单击注销时,应注销用户
- 注销后,应返回步骤1,因此他应再次看到Microsoft登录页面
这是我的app.module.ts文件中的内容:
MsalModule.forRoot({
auth: {
clientId: '...', // This is your client ID
authority: '...',
// redirectUri: 'https://localhost:5001',
postLogoutRedirectUri: '**<--THIS MAYBE? BUT WHAT URL DO I PUT HERE TO COME BACK TO THE MICROSOFT LOGIN PAGE??**'
},
cache: {
cacheLocation: 'localStorage',
storeAuthStateInCookie: isIE, // Set to true for Internet Explorer 11
},
}, {
popUp: false,
consentScopes: [
'user.read',
'openid',
'profile',
],
unprotectedResources: [],
protectedResourceMap: [
// ['https://graph.microsoft.com/v1.0/me', ['user.read']]
],
extraQueryParameters: {}
})
],...
这是我的 app-routing.module.ts 文件:
const routes: Routes = [
{
path: '', canActivate: [MsalGuard], children: [
{path: '', component: HomeComponent},
{path: 'home', component: HomeComponent},
{path: 'tools', component: ToolsComponent}
]
}
];
我目前遇到的问题是:注销后,它将再次转到WebApp,然后重定向到MS登录页面。但我希望直接跳转到MS登录页面,这样用户在注销后就无法再看到WebApp的任何内容了。
我真正需要避免的是,如果用户未登录,则不允许他看到WebApp的任何内容。因此,我不想将其重定向到组件(因为那样会再次显示内容)。