Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
447 views
in Technique[技术] by (71.8m points)

nuxt.js - Nuxt $auth isn't available for server side rendering after being redirected from Adonis

  • nuxt: 2.14.6
  • node: v12.20.0
  • adonisjs: v5.0.9

I'm using Nuxt with SSR option enabled and authentication strategy is configured as follow to communicate with Adonisjs at server side:

auth: {
    strategies: {
      local: {
        endpoints: {
          login: {
            url: `${process.env.AUTH_URL}/signin`,
            method: "post",
            propertyName: "data.token"
          },
          user: {
            url: `${process.env.AUTH_URL}/me`,
            method: "get",
            propertyName: "data"
          },
          logout: false
        }
      }
    },

   cookie: {
      prefix: "auth.",
      options: {
        sameSite: "strict",
        domain: process.env.AUTH_ORIGIN
      }
    }
}

When things work properly, if I open a Nuxt page, $auth is initialized to be used in server-side rendering . But If I do redirect from Adonisjs to Nuxt, it won't be initialized server-side any more and I see there is an XHR request to /me endpoint in network tab of Firefox developer tools.

Screenshot-20201230163759-782x170

Redirecting from Adonis as follow:

async check({ response }) {
     response.redirect(`/mypage`);
}

Here is my NuxtController in Adonisjs:

class NuxtController {
  constructor() {
    this.nuxt = use('Service/Nuxt')
  }

  async render({ request: { request: req }, response, session }) {
    response.implicitEnd = false
    await session.commit()

    await new Promise((resolve, reject) => {
      this.nuxt.render(req, response.response, (promise) => {
        promise.then(resolve).catch(reject)
      })
    })
  }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...