我正在尝试使用 keycloak 保护反应组件,到目前为止我已经按照它所说的做了所有事情:
但最后我得到这个错误:
keycloak.init(...).then 不是函数
我试图用 check-sso 替换 login-required
这是我在组件中注入的代码:
import Keycloak from 'keycloak-js';
componentDidMount() {
const keycloak = Keycloak('./public/keycloak.json');
keycloak.init({onLoad: 'login-required'}).then(authenticated => {
this.setState({ keycloak: keycloak, authenticated: authenticated })
})
}
render(){
if (this.state.keycloak) {
if (this.state.authenticated)
return (<div className="container text-dark">);
else return (<div>Unable to authenticate!</div>)
}
return (<div>Initializing Keycloak...</div>);
}
Run Code Online (Sandbox Code Playgroud)

代替 :
const keycloak = Keycloak('./public/keycloak.json');
尝试这个:
const keycloak = Keycloak('/keycloak.json');
并在这样的初始化选项中将promiseType设置为native(在您的情况下):
keycloak.init({onLoad: 'login-required', promiseType: 'native'}).then(authenticated => {
this.setState({ keycloak: keycloak, authenticated: authenticated })
})
| 归档时间: |
|
| 查看次数: |
8072 次 |
| 最近记录: |