0

这是我的配置:

auth: {
    plugins: ['~/plugins/auth.js'],
    strategies: {
      local: {
        scheme: 'refresh',
        token: {
          property: 'jwtToken',
        },
        refreshToken: {
          property: 'refreshToken',
          data: 'refreshToken',
        },
        user: false,
        endpoints: {
          login: { url: '/api/account/authenticate', method: 'post' },
          logout: { url: '/api/account/logout', method: 'post' },
          mPassLogout: { url: '/api/account/init-mpass-logout', method: 'get' },
          refresh: {
            url: '/api/account/refresh-token',
            method: 'post',
            data: {
              test: 123,
            },
          },
          user: false,
        },
      },
    },
  },

在刷新端点对象中,我想在数据对象中发送 refreshToken 和令牌,我该如何实现呢?我无法修改后端 api。文档说端点只是扩展了 axios 选项,但是我如何访问这些数据中的 refreshToken 和令牌?同样在请求之后,我需要设置新的刷新和 jwtToken。

4

1 回答 1

0

我创建了一个插件

export default function (app) {
  app.$axios.onRequest((configs) => {
    if (configs.url === 'yourUrlOnRefresh') {
      const bearerToken = app.$auth.strategy.token.get()
      if (bearerToken) {
        const jwtToken = bearerToken.split(' ')[1]
        configs.data.token = jwtToken
      }
    }
  })
}

于 2021-05-18T12:46:09.560 回答