我在我的 Angular 应用程序中使用带有 keycloak 的 angular-oauth2-oidc 库作为 Auth-Provider。在“快乐路径”中一切正常:
- 用户点击登录按钮
- 调用 initImplicitFlow 方法
- keycloak登录页面出现
- 用户输入他的凭据
- 重定向到角度应用程序
但是,当用户在 Keycloak 页面上单击浏览器的后退导航按钮,然后再次尝试通过点击 angular-app 中的登录按钮进行登录时,什么也没有发生。没有重定向到 Keycloak。只有当我重新加载页面或手动导航到 app-root 时,它才会再次起作用。
这种行为只发生在 Firefox 中,并且在 Chrome 甚至 Internet Explorer 或 Edge 中都能正常工作。也许有人知道它的解决方案:)
我的身份验证配置:
export const authConfig: AuthConfig = {
// Url of the Identity Provider
issuer: AppSettings.AUTH_SERVER,
// URL of the SPA to redirect the user to after login
redirectUri: window.location.origin + "/index.html",
// The SPA's id. The SPA is registerd with this id at the auth-server
clientId: "angular-app-1",
showDebugInformation: true,
silentRefreshRedirectUri: window.location.origin + "/silent-refresh.html",
// set the scope for the permissions the client should request
// The first three are defined by OIDC. The 4th is a usecase-specific one
scope: "openid profile email dashboardapi_user"
};
我不知道是否与问题有关,但我正在使用 HashLocationStrategy 进行路由。
我还在使用 Angular 6、Keycloak版本3.2.1.Final和angular-oauth2-oidc版本4.0.2