【发布时间】:2022-07-01 22:28:15
【问题描述】:
我一直在尝试同时使用 next-auth 和 keycloak,但是在使用多领域登录时我失败了,使用单个 keycloak 提供程序我无法更改 clientSecret 和 issuer 选项运行时,所以我尝试为每个领域添加具有不同 id 的多个 keycloak 提供程序,它可以工作,我可以使用 react 挂钩来选择正确的领域:
[...nextauth].ts
const realms = [
{
id: 'abc',
clientId: 'nextjs',
clientSecret: 'asfasdfdfasdfdasfasfddsf',
issuer: 'http://localhost:8080/realms/abc',
},
{
id: 'xyz',
clientId: 'nextjs',
clientSecret: 'ssdfsdfsdfasdfasdfasdfasfdsdf',
issuer: 'http://localhost:8080/realms/xyz',
}
];
供应商:
export default NextAuth({
providers: realms.map((realm) => KeycloakProvider({
id: realm.id,
clientId: realm.clientId,
clientSecret: realm.clientSecret,
issuer: realm.issuer
})),
});
我最大的问题是我不能在运行时包含更多的提供者/领域配置,如果我可以使用安全的端点来获取那些 keycloak 配置会很好......所以如果有人可以帮助我,向我展示一些如何实现它的指南,欢迎任何帮助!
我是 NextJS 的新手,你可以查看我的 full-project-code
【问题讨论】:
标签: reactjs next.js keycloak multi-tenant next-auth