您可以通过具有机密访问类型的 Keycloak 客户端对 Nuxt.js 应用程序进行身份验证吗?

问题描述 投票:0回答:2

我正在通过 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: '/'
        }
      }
    }
  },

Here are my Keycloak client settings

我尝试将 clientSecret 添加到我的 OAuth2 配置中,但也没有帮助。即使它有帮助,我也会问自己这是否是在我的 Nuxt 应用程序中保存机密数据的正确方法。

vue.js nuxt.js keycloak nuxt-auth
2个回答
0
投票

不清楚您使用的是哪个 nuxt 版本和 keycloak 版本。 这个演示可以帮助你吗? https://github.com/Kingside88/nuxt3-primevue-starter-auth


0
投票

您需要将访问类型值设置为 public,因为您将使用 nuxt 的单独前端。你是如何解决keycloak登录后的重定向问题的?对我来说,它没有正确重定向到我的主页。它进入登录页面。有什么想法吗??

© www.soinside.com 2019 - 2024. All rights reserved.