不使用Redux的Next.js SSR存储访问令牌

时间:2018-10-26 09:45:56

标签: reactjs serverside-rendering next.js ssr

我已经使用NextJS和ReactJS实现了服务器端渲染应用程序。

当用户登录到应用程序时,我想存储一些用户详细信息,例如访问令牌,刷新令牌,电子邮件地址,并在整个应用程序中使用它。 (有点像在客户端渲染应用程序上使用本地存储的方式那样全局存储)

我不使用REDUX,所以我想知道在不使用REDUX的情况下存储这些用户详细信息的最佳方法。

在使用SSR时实现此目的有哪些不同的方法?

1 个答案:

答案 0 :(得分:0)

我建议使用会话cookie。在next.js getInitialProps方法中可用。

static async getInitialProps ({req}) {
  console.log(req.headers.cookies) // depending on your server middlewares / config, this is available
}

LocalStorage或SessionStorage在SSR中不可用,而cookie始终附加到请求中。我进一步建议制作Cookie secure(仅通过https进行提供),并使用http-only防止JS客户端/浏览器访问。

使用express-session时,使用cookie /会话会更方便。

static async getInitialProps ({req}) {
  console.log(req.session) // with express session
}