javascript - Next.js 中的 session 管理

标签 javascript reactjs session session-cookies next.js

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

最佳答案

您可以使用 cookie 来存储 session 。

这里是 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;
  }

}

关于javascript - Next.js 中的 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49358383/

相关文章:

reactjs - 使用 ImmutableJS 对象作为 React 组件状态

javascript - AngularJS 安全 token 与 session

php - 多个(取消的)POST 请求后 session 丢失

javascript - 这是Javascript的特殊字符串格式

javascript - Onsubmit 函数在 Safari 上触发,即使所需的输入为空

javascript - 将嵌套数组 -> 数组 -> 对象转换为数组 -> 对象 => 对象值 : object value

javascript - 使用 jQuery AJAX 调用将数据传递到函数中

reactjs - 如何在 React Native 中让父级的宽度包裹其内容?

reactjs - 开 Jest 抛出 TypeError : Cannot read property 'fetch' of undefined

javascript - 警告 : connect. session() MemoryStore 不是为生产环境设计的,因为它会泄漏内存,并且不会扩展到单个进程