React keycloak 集成不重定向到登录页面

Rai*_*lam 7 reactjs openid-connect keycloak

我正在@react-keycloak/web使用 keycloak 来保护反应应用程序。但是react加载页面对其没有任何影响。我是否错过了一些设置或者有什么问题?这是我的代码...

keycloak.js

import Keycloak from 'keycloak-js'

const keycloakConfig = {
  url: 'http://localhost:8080/auth',
  realm: 'my_local',
  clientId: 'test_client',
  onLoad: 'check-sso'
}

const keycloak = new Keycloak(keycloakConfig)

export default keycloak
Run Code Online (Sandbox Code Playgroud)

我的index.js

import { ReactKeycloakProvider } from '@react-keycloak/web'
import keycloak from './keycloak'

<ReactKeycloakProvider
  authClient={keycloak}
  onEvent={eventLogger}
  onTokens={tokenLogger}
>
<App />
</ReactKeycloakProvider>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 12

我通过移动提供程序中的 onLoad 参数解决了这个问题。我遇到了同样的问题,并偶然发现了这个解决方案。

import Keycloak from 'keycloak-js'

const keycloakConfig = {
  url: 'http://localhost:8080/auth',
  realm: 'my_local',
  clientId: 'test_client',
}

const keycloak = new Keycloak(keycloakConfig)

export default keycloak
Run Code Online (Sandbox Code Playgroud)
import { ReactKeycloakProvider } from '@react-keycloak/web'
import keycloak from './keycloak'

<ReactKeycloakProvider
  initOptions={{ onLoad: 'login-required' }}
  authClient={keycloak}
  onEvent={eventLogger}
  onTokens={tokenLogger}
>
<App />
</ReactKeycloakProvider>
Run Code Online (Sandbox Code Playgroud)


小智 3

我认为您需要将配置onLoad值从check-sso更改为login-required。这应该使它到达您的 keycloak 登录页面,而不仅仅是检查是否已经通过身份验证。