6

我一直在使用 window.localstorage 毫无问题地保存一些数据,数据在会话之间持续存在。

我决定改用cookie,使用'react-cookie',代码如下:

import Cookies from 'react-cookie';

export default class Auth {
    static STORAGE_KEY: string = "token";

    static cookies = new Cookies();


    public static getToken() {
        var toRet = this.cookies.get(Auth.STORAGE_KEY);
        return toRet;
    }

    public static setToken(token: string) {
        this.cookies.set(Auth.STORAGE_KEY, token, { path: '/' });
    }

    public static removeToken(): void {
        this.cookies.remove(Auth.STORAGE_KEY, { path: '/' });
    }
}

如果我调用“setToken”,则值集仍然存在,但是如果我关闭浏览器并再次打开它,则数据将丢失。

我的根渲染函数根据网页 https://www.npmjs.com/package/react-cookie具有 cookie 提供程序:

import { CookiesProvider } from 'react-cookie';
export class Layout extends React.Component<{}, {}> {
    public render() {
        return <CookiesProvider> ( some stuff ) </CookiesProvider>
4

1 回答 1

14

默认的 cookie 生命周期是“会话”。你应该设置一个maxAge

this.cookies.set(Auth.STORAGE_KEY, token,
                 { path: '/', maxAge: 31536000 });

它在几秒钟内。

于 2017-09-16T06:21:40.943 回答