angular - 注销后单击登录按钮的 MSAL v1 无需询问凭据即可直接登录
问题描述
我正在使用以下版本的 Angular 和 MSAL 进行登录流程,
"@angular/cli": "~6.0.8",
"@azure/msal-angular": "^1.1.2",
"msal": "^1.4.4"
问题:一旦我点击注销,它就会让我注销当前行为的屏幕,但是当我点击登录按钮时,我正在调用 loginRedirect() 方法进行登录,但它直接登录到应用程序而不询问凭据。此问题仅在启用阻止第三方 cookie 时在 crome 上发生。
解决方案
出现此问题是因为您没有从本地存储中清除会话或令牌。当您注销时,您必须从 localStorage 中清除令牌的 cookie 和本地会话。
MSAL 在 v1 中提供了一种注销方法,可清除浏览器存储中的缓存并将窗口重定向到 Azure Active Directory (Azure AD) 注销页面。注销后,Azure AD 会重定向回默认调用注销的页面。您可以通过设置 postLogoutRedirectUri 来配置注销后应重定向到的 URI。此 URI 应在您的应用程序注册中注册为重定向 Uri。在此处了解有关重定向的更多信息。
在您的app.module.ts
文件中添加以下代码:
@NgModule({
imports: [
MsalModule.forRoot({
auth: {
clientId: 'your_app_id',
postLogoutRedirectUri: "your_app_logout_redirect_uri"
}
})
]
})
在您的 component.ts 中添加此代码this.authService.logout();
推荐阅读
- python - 为什么即使数据集非常小,XGBoost 的拟合速度也很慢?
- conemu - ConEmu 立即关闭
- python - 高 val_acc 和低 val_loss,仍然是 Keras 的错误预测
- google-analytics - Google Ads 广告系列的 GA 展示(未设置)
- authentication - IdentityServer4 授权因全局授权策略而失败
- reactjs - 网格系统中的 React 拖放
- php - 在 php 中从用户获取文件并将其发送到烧瓶服务器而不保存它
- php - ErrorException (E_ERROR) 试图获取非对象的属性“标题”
- java - 使用我的应用程序连接到 php .htaccess
- html - HTML 嵌套表结构