如何在Nuxt和Django-Rest-Framework中使用SessionAuthentication

时间:2019-07-16 14:24:58

标签: django-rest-framework session-cookies nuxt.js

如何配置Nuxt与Django-Rest-Framework和SessionBasedAuthentication一起使用?

我运行带有SessionBasedAuthentication的常规Django-Rest-Framework项目。在同一台服务器上,我运行Nuxt并将从/ myapp /的所有调用代理到nuxt服务器(正在监听localhost:3000)。在这里,您可以了解有关我的部署的更多信息:How to deploy Nuxt SSR with mod_rewrite in a sub folder?

这是我第一次尝试使一切正常。但这感觉有点hacky,而且根本无法正常工作。 引荐来源网址一直缺失。正因为如此,我才写出了那种骇人听闻的代码。

nuxt.config.js

  plugins: [
    '~/plugins/axios'
  ],

  modules: [
    'bootstrap-vue/nuxt',
    '@nuxtjs/axios',
    '@nuxtjs/eslint-module'
  ],

  axios: {
    proxy: true,
    proxyHeaders: true,
  },

  proxy: {
    '/rest': process.env.PROXY_URL || 'https://www.example.com',
  },

plugins / axios.js

export default function({ $axios, redirect, req }) {
// Set missing referer Header
if (process.server) {
  const refUrl = req.headers.referer
    ? req.headers.referer
    : 'https://www.example.com'
  $axios.setHeader('referer', refUrl)
}
// Set X-CSRFToken
const cookie = require('cookie')
  if (req.headers.cookie) {
    const cookieDict = cookie.parse(req.headers.cookie)
    if (cookieDict.csrftoken) {
      $axios.setHeader('X-CSRFToken', cookieDict.csrftoken)
    }
  }
}

0 个答案:

没有答案