2017-09-16 3 views
0

J'ai utilisé window.localstorage pour enregistrer des données sans problème, les données persistaient entre les sessions.Les cookies sont supprimés lorsque je ferme le navigateur?

j'ai décidé de passer à l'aide de cookies, en utilisant « réagir cookie », le code comme suit:

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

Si j'appelle «setToken l'ensemble de la valeur persiste, si je ferme la Brower et l'ouvrir encore une fois que les données sont perdues.

Ma racine fonction render a le fournisseur de cookies par le site 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> 
+0

Les cookies ne sont pas automatiquement supprimés sauf si vous êtes en mode navigation privée ou si vous avez configuré votre navigateur de cette façon. De toute façon, comment voulez-vous résoudre ce problème en utilisant la programmation? – Nisarg

Répondre

3

La durée de vie des cookies par défaut est « session ». Vous devez définir un maxAge:

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

Il est en quelques secondes.

+0

parfait, fonctionne exactement comme prévu. Je vais marquer le vôtre en tant que «réponse» dans 4 minutes quand stackoverflow me laisse. Merci pour la réponse rapide! – tweetypi