javascriptreactjstypescriptcookiesreact-cookie

Cookies are deleted when I close the browser?


I've been using window.localstorage to save some data without problem, the data was persisting between sessions.

I decided to switch to using cookies, using 'react-cookie', code as follows:

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: '/' });
    }
}

If I call 'setToken' the value set persists, however if I close the brower and open it again that data is lost.

My root render function has the cookies provider as per the webpage https://www.npmjs.com/package/react-cookie:

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

Solution

  • The default cookie lifetime is “session”. You should set a maxAge:

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

    It’s in seconds.