Next.js 中的会话管理

Posted

技术标签:

【中文标题】Next.js 中的会话管理【英文标题】:Session management in Next.js 【发布时间】:2018-08-27 17:49:21 【问题描述】:

我在我的 reactjs 项目中使用 nextjs。在 nextjs 中,在服务器端调用 getInitialProps() 来加载第一个页面,因此我们无法访问本地存储来获取会话。 我们如何使用 nextjs 正确管理会话。

【问题讨论】:

利用像this这样的cookie 【参考方案1】:

您可以使用 cookie 来存储会话。

这里是an example:

客户端

import jsCookie from 'js-cookie';

const result = await api.login(user, pwd);

if (result.status === 200) 
  jsCookie.set('token', result.token);

服务器端

import jsHttpCookie from 'cookie';

class MyPage extends Component 

  static async getInitialProps( req ) 
    const initProps = ;

    if (req && req.headers) 
      const cookies = req.headers.cookie;

      if (typeof cookies === 'string') 
        const cookiesJSON = jsHttpCookie.parse(cookies);

        initProps.token = cookiesJSON.token;
      
    

    return initProps;
  


【讨论】:

您似乎使用了错误的标题“服务器端”、“客户端” 不,他们是好人,您可以点击链接了解更多信息。

以上是关于Next.js 中的会话管理的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的会话管理是啥?

ASP.NET 中的 FluentNHibernate 会话管理

Servlet 和 JSP 中的会话管理 [重复]

如何在 ios 中的 facebook 集成中管理会话

会话管理之Cookie技术

iOS 中的身份验证和会话管理