reactjs - Gatsby Keycloak 集成
问题描述
我在尝试将 Keycloak 与 Gatsby 静态网站集成时遇到问题。集成的目的是让登录用户与网站中的组件进行交互(例如:点赞、分享等功能),而网站是完全公开的。
Keycloak 实例位于远程服务器上,设置了领域,并使用此配置添加了客户端。
我使用这个 repo作为参考,但我想由于模块版本的不同而存在一些差异。我正在使用:
"@react-keycloak/web": "^2.1.3",
"keycloak-js": "^11.0.0",
这是我的 gatsby-browser.js:
import React from 'react'
import { node } from 'prop-types'
import Keycloak from 'keycloak-js'
import { KeycloakProvider } from '@react-keycloak/web'
const keycloak = new Keycloak({
realm: 'myRealm',
url: 'https://myKeycloak.com/auth',
clientId: 'myClientId'
})
const Loading = () => <div>getting ready...</div>
const wrapRootElement = ({ element }) => {
return (
<KeycloakProvider
keycloak={keycloak}
initConfig={{
promiseType: 'native',
onLoad: 'check-sso',
silentCheckSsoRedirectUri:
window.location.origin + '/silent-check-sso.xhtml'
}}
LoadingComponent={<Loading />}
>
{element}
</KeycloakProvider>
)
}
wrapRootElement.propTypes = {
element: node
}
const _wrapRootElement = wrapRootElement
export { _wrapRootElement as wrapRootElement }
我被困在getting ready...
页面中,而在我得到的网络工具上:
GET https://myKeycloak.com/auth/realms/myRealm/protocol/openid-connect/3p-cookies/step1.html
Status 404
Not Found
你有什么建议给我吗?提前感谢,祝你有美好的一天
解决方案
似乎最新keycloak-js
版本与旧的 Keycloak 服务器不兼容。尝试按照此处keycloak-js
的建议进行降级。版本对我有用。10.0.2
推荐阅读
- reactjs - React Hooks clickhandler to children
- perl - 直接 perl 哈希引用和变成引用的哈希之间的区别
- c# - 如何将模型指定为 Google OR 工具的字符串?
- node.js - How can I require node modules across disk partitions?
- python - 无法使用“model.save()”保存自定义模型
- swift - NotificationCenter 观察者调用播放多个视频 - 快速 - 以编程方式
- c++ - OpenMP:如何优化线程安全的哈希表
- .net - PowerShell 将 PSCUSTOM 对象传递给 json
- python - 为什么 pvlib 中能源生产的最佳表面方位角不在北半球 180° 或附近?
- javascript - 掷骰子命令?