我正在通过 Nuxt.js 的身份验证模块使用 Keycloak 验证我的 Nuxt 应用程序。 (https://auth.nuxtjs.org/)
当我的 Keycloak 客户端的访问类型设置为公共时,一切都按预期运行。现在我尝试将 Keycloak 客户端的访问类型设置为机密。但它不起作用。成功登录我的 Nuxt 应用程序后陷入重定向循环。
我的配置是否错误或者我忘记了什么?
这是我的 OAuth2 方案配置:
auth: {
cookie: {
options: {
HttpOnly: false,
Secure: true
}
},
strategies: {
local: false,
keycloak: {
scheme: 'oauth2',
endpoints: {
authorization: `${process.env.KEYCLOAK_HOST}/auth/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/auth`,
userInfo: `${process.env.KEYCLOAK_HOST}/auth/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/userinfo`,
token: `${process.env.KEYCLOAK_HOST}/auth/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/token`,
logout: `${process.env.KEYCLOAK_HOST}/auth/realms/${process.env.KEYCLOAK_REALM}/protocol/openid-connect/logout?redirect_uri=` +
encodeURIComponent(process.env.FRONTEND_SCHEME + '://' + process.env.FRONTEND_HOST)
},
token: {
property: 'access_token',
type: 'Bearer',
name: 'Authorization',
maxAge: 1800
},
refreshToken: {
property: 'refresh_token',
maxAge: 60 * 60 * 24 * 30
},
responseType: 'code',
grantType: 'authorization_code',
clientId: `${process.env.KEYCLOAK_CLIENT_ID}`,
clientSecret: `${process.env.KEYCLOAK_CLIENT_SECRET}`,
scope: ['openid', 'profile', 'email'],
codeChallengeMethod: 'S256',
vuex: {
namespace: 'auth'
},
redirect: {
login: '/login',
logout: '/',
callback: '/',
home: '/'
}
}
}
},
我尝试将 clientSecret 添加到我的 OAuth2 配置中,但也没有帮助。即使它有帮助,我也会问自己这是否是在我的 Nuxt 应用程序中保存机密数据的正确方法。
不清楚您使用的是哪个 nuxt 版本和 keycloak 版本。 这个演示可以帮助你吗? https://github.com/Kingside88/nuxt3-primevue-starter-auth
您需要将访问类型值设置为 public,因为您将使用 nuxt 的单独前端。你是如何解决keycloak登录后的重定向问题的?对我来说,它没有正确重定向到我的主页。它进入登录页面。有什么想法吗??