2017-09-16 69 views
0

我一直在使用window.localstorage保存一些没有问题的数据,数据在会话之间持续存在。当我关闭浏览器时Cookie被删除?

我决定改用使用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

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

除非您处于隐身模式,否则Cookie不会自动删除,或者您已以此方式配置浏览器。无论哪种方式,你如何期望通过编程来解决这个问题? – Nisarg

回答

3

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

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

这是在几秒钟。

+0

完美,完全按预期工作。 我会在4分钟内将你的答案标记为'stackoverflow'的'答案'。感谢你及时的答复! – tweetypi

相关问题