【问题标题】:Nuxt Auth Refresh token - failed authenticationNuxt Auth 刷新令牌 - 身份验证失败
【发布时间】:2021-09-06 23:14:53
【问题描述】:

我使用@nuxtjs/auth-next 肯定有配置问题,但我尝试了多种配置都没有成功。

我将此示例用于服务器部分https://github.com/cornflourblue/node-mongo-signup-verification-api

这是我当前的配置:

auth: {
  redirect: {
    login: '/login',
    logout: '/',
    callback: '/login',
    home: '/'
  },
  strategies: {
    local: {
      scheme: 'refresh',
      token: {
        property: 'jwtToken',
        maxAge: 1800,
        global: true,
        // type: 'Bearer'
      },
      refreshToken: {
        property: 'refreshToken',
        data: 'refreshToken',
        maxAge: 60 * 60 * 24 * 30
      },
      user: {
        property: false,
        autoFetch: false
      },
      endpoints: {
        login: { url: '/accounts/authenticate', method: 'post', propertyName: 'data.jwtToken' },
        refresh: { url: '/accounts/refresh-token', method: 'post' },
        user: false,
        //user: { url: '/accounts/refresh-token', method: 'post', propertyName: null },
        logout: { url: '/accounts/revoke-token', method: 'post' }
      },
      // autoLogout: false
    }
  }
}

我认为 Cookie 和答案是正确的。 怎么了?

【问题讨论】:

  • 这里有一个关于昨天调试的问题的链接:stackoverflow.com/a/68081536/8816585 你能看看它并就你的情况给我们反馈吗? (我猜你没有任何错误)
  • 是的,没有错误。我添加了 $auth.setUser 没有成功/更改。登录和用户保持为假。
  • @kissu 编辑:使用 $auth.setUser 我有一个用户对象,但 loggedIn 保持为假。

标签: express jwt nuxt.js nuxt-auth


【解决方案1】:

使用此配置“工作”:

  auth: {
    redirect: {
      login: '/login',
      logout: '/',
      callback: '/login',
      home: '/'
    },
    strategies: {
      local: {
        scheme: 'refresh',
        token: {
          property: 'jwtToken',
          maxAge: 1800,
          global: true,
          //type: ''
        },
        refreshToken: {
          property: 'jwtToken',
          data: 'refreshToken',
          maxAge: 60 * 60 * 24 * 30
        },
        user: {
          property: false,
          autoFetch: false
        },
        endpoints: {
          login: { url: '/accounts/authenticate', method: 'post', propertyName: 'jwtToken' },
          refresh: { url: '/accounts/refresh-token', method: 'post' },
          user: false,
          //user: { url: '/accounts/refresh-token', method: 'post', propertyName: null },
          logout: { url: '/accounts/revoke-token', method: 'post' }
        },
        // autoLogout: false
      }
    }
  }

但实际上刷新令牌是由服务器在 HTTP Only cookie 中发送的,因此它不起作用。 @nuxtjs/auth-next 是否涵盖了这种情况,还是必须在 API 响应中包含刷新令牌?

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 2017-11-08
    • 2021-08-02
    • 2018-07-23
    • 2020-07-07
    • 2021-11-03
    • 1970-01-01
    • 2019-02-27
    • 2018-05-27
    相关资源
    最近更新 更多