0

I am using next-iron-session and next-redux-wrapper in my nextjs client. Both of them require me to wrap getServerSideProps with their respective functions. Does somebody know, how I can chain the wrappers ?

next-iron-session (individual)

export const getServerSideProps = 
  withIronSession(
  async ({ req, res }) => {
    const user = req.session.get("user");

    if (!user) {
      res.statusCode = 404;
      res.end();
      return { props: {} };
    }

    return {
      props: { user }
    };
  },
  {
    cookieName: "MYSITECOOKIE",
    cookieOptions: {
      secure: process.env.NODE_ENV === "production" ? true : false
    },
    password: process.env.APPLICATION_SECRET
  }
);

next-redux-wrapper (individual)

export const getServerSideProps = wrapper.getServerSideProps((store) => async () => {
  const user = store.getState().user
  console.log('user', user)
})

Combination (not working)

TypeError: Cannot read property 'ttl' of undefined

    export const getServerSideProps = withIronSession(
      wrapper.getServerSideProps(
        (store) =>
          async ({ req, res }) => {
            const user = req.session.get('user')
            console.log(user)
            return {
              props: { user: 'hi' },
            }
          },
        {
          cookieName: 'MYSITECOOKIE',
          cookieOptions: {
            secure: process.env.NODE_ENV === 'production' ? true : false,
          },
 password: process.env.APPLICATION_SECRET
        },
      ),
    )
drag98
  • 37
  • 1
  • 6

1 Answers1

0

I have no idea why it suddenly works. That was my first solution and it didn't work, already now. But for newer ones, please ...

export const getServerSideProps = wrapper.getServerSideProps((store) =>
  withIronSession(
    async ({ req, res }) => {
      const user = await req.session.get('user')
      console.log('uer', user)
      return {
        props: { user: 'hi' },
      }
    },
    {
      cookieName: 'MYSITECOOKIE',
      cookieOptions: {
        secure: process.env.NODE_ENV === 'production' ? true : false,
      },
      password: process.env.APPLICATION_SECRET,
    },
  ),
)
drag98
  • 37
  • 1
  • 6