axios NuxtJS身份验证代理

hwazgwia  于 2022-11-05  发布在  iOS
关注(0)|答案(2)|浏览(229)

然后使用nuxtjs/authnuxtjs/axios nuxt忽略了我的代理配置。
在过去,我只使用axios进行身份验证。
现在我正在尝试使用@nuxtjs/auth模块。因为我使用单独的后端和CORS,所以我需要使用axios代理进行auth。
但是auth策略local没有使用代理,我不明白为什么。它总是试图使用nuxturl。看起来auth完全忽略了我的代理。有人能帮忙吗?
第一个
我的Nuxt正在http://localhost:3000上运行
我的客户端总是尝试连接到http://localhost:3000/api/auth/login
但是我需要http://localhost:4000/auth/login
我使用最新的所有模块

py49o6xq

py49o6xq1#

我也有同样的问题。但是我使用@nuxtjs/auth-next是因为nuxtjs/auth已经过时了,我使用@nuxtjs/proxy来代替nuxtjs/axios代理。
1.这是我的包依赖关系。

// pacakge.json
"dependencies": {
  "@nuxtjs/auth-next": "^5.0.0-1648802546.c9880dc",
  "@nuxtjs/axios": "^5.13.6",
  "@nuxtjs/proxy": "^2.1.0",  
  "nuxt": "^2.15.8",
  // ...  
}

1.修复了nuxt.config。

// nuxt.config.ts
import type { NuxtConfig } from '@nuxt/types';

const config: NuxtConfig = {   
  ssr: false,

  // ...ignore

  modules: [     
    '@nuxtjs/axios',
    '@nuxtjs/proxy',     
    '@nuxtjs/auth-next',
  ],

  auth: {          
    strategies: {
      local: {
        name: 'local',
        endpoints: {
          login: { url: '/api/auth/login', method: 'post', propertyName: 'token' },
          logout: { url: '/api/auth/logout', method: 'post' },
          user: { url: '/api/auth/user', method: 'get', propertyName: 'user' }
        }
        // ...ignore
      },
    },
  },
  proxy: {
    '/api': {
      target: 'http://localhost:4000/',    
      secure: false,
      // CORS problem need to set true,
      changeOrigin: true,
      pathRewrite: {
        '^/api' : '/'
      }
    },
  }
};

export default config;

1.如果设置正确,当运行npm run dev时,控制台应显示以下信息。

[HPM] Proxy created: /api  -> http://localhost:4000/
[HPM] Proxy rewrite rule created: "^/api" ~> "/"    
[HPM] server close signal received: closing proxy server
q9rjltbz

q9rjltbz2#

proxy对象应该在axios对象之外,即

axios: {
 proxy: true,
 // Your other configurations
}

proxy: {
 '/api/': {
   target: 'http://localhost:4000',
   pathRewrite: { '^/api/': '' }
 }
}

相关问题