Next.js 中的会话管理
Session management in Next.js
我在我的 reactjs 项目中使用 nextjs。在 nextjs 中,getInitialProps() 在服务器端调用以加载第一个页面,因此我们无法访问本地存储来获取会话。
我们如何使用 nextjs 正确管理会话。
您可以使用 cookie 来存储会话。
这里是an example:
Client-side
import jsCookie from 'js-cookie';
const result = await api.login(user, pwd);
if (result.status === 200) {
jsCookie.set('token', result.token);
}
Server-side
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;
}
}
我在我的 reactjs 项目中使用 nextjs。在 nextjs 中,getInitialProps() 在服务器端调用以加载第一个页面,因此我们无法访问本地存储来获取会话。 我们如何使用 nextjs 正确管理会话。
您可以使用 cookie 来存储会话。
这里是an example:
Client-side
import jsCookie from 'js-cookie';
const result = await api.login(user, pwd);
if (result.status === 200) {
jsCookie.set('token', result.token);
}
Server-side
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;
}
}