Nuxt3集成Sidebase Nuxt-Auth与Keycloak的AccessToken获取验证问题
Nuxt 3 + Nuxt-Auth + Keycloak:无法获取Keycloak Access Token用于后端请求
问题背景
我正在开发Nuxt 3应用,已使用Sidebase的Nuxt-Auth模块集成以Keycloak为身份提供商的认证功能,登录/退出流程正常,但在使用颁发的access token向Spring Boot后端发起认证请求时遇到问题。
问题描述
认证成功后,我通过Nuxt-Auth的getToken方法获取令牌用于API请求,但得到的似乎是无效的Nuxt-Auth会话令牌,而非所需的Keycloak access token。
根据官方文档,jwt回调应将access token加入会话,但我的回调中无access token,且account和user对象始终为undefined。
相关代码片段
获取令牌的代码
// Token retrieval endpoint in Nuxt import { getToken } from "#auth" export default eventHandler(async (event) => { const token = await getToken({ event, raw: true, secret: process.env.NEXTAUTH_SECRET }); console.log(token); return token || 'no token present'; });
Nuxt-Auth处理器配置
// NuxtAuthHandler configuration import KeycloakProvider from 'next-auth/providers/keycloak'; import { NuxtAuthHandler } from '#auth'; export default NuxtAuthHandler({ secret: process.env.NEXTAUTH_SECRET, providers: [ KeycloakProvider.default({ clientId: process.env.KEYCLOAK_CLIENT_ID, clientSecret: process.env.KEYCLOAK_CLIENT_SECRET, issuer: process.env.KEYCLOAK_ISSUER_URL, idToken: true, wellKnown: process.env.KEYCLOAK_WELLKNOWN, authorization: { params: { redirect_uri: `${process.env.NEXTAUTH_URL}/api/auth/callback/keycloak`, }, } }), ], callbacks: { jwt({ token, account, user }) { console.log(token, account, user); return token; }, session: (data) => { return data.session; } }, });
疑问
- 如何正确获取Keycloak颁发的access token并用于Spring Boot后端请求?
- 是否遗漏配置步骤,无法将access token集成到会话中?
- 是否因Keycloak配置错误导致access token未出现在回调中?
已解决
问题已解决,虽无法还原具体操作,但关键是将sessionStrategy设置为jwt以确保回调正常执行,该问题可关闭。
内容的提问来源于stack exchange,提问作者kSp
相关产品推荐
相关产品推荐

