【问题标题】:Check for expiry of a cookie and trigger an action after it expired in react检查 cookie 的过期时间并在它过期后触发动作
【发布时间】:2016-06-03 04:59:08
【问题描述】:

我正在使用 react-cookie npm 包来处理 react 中的 cookie。我想要做的是检查是否存在 cookie,如果不存在,则将用户重定向到登录页面。但是 cookie 的有效期为 30 分钟,我想检查 cookie 的有效期并将用户再次重定向到登录页面。

目前我正在componentWillMount react 的生命周期中执行此操作,但 if 仅在我刷新页面时检查条件。我知道我应该使用 react 的 componentWillUpdate 生命周期并检查状态,但我不知道该怎么做。

这是我的代码。

componentWillMount() {

        let  getCookie = cookie.load('token');
        let exp = cookie.load('exp');
        console.log(getCookie);
        if(getCookie === undefined || ((exp - new Date().getTime()) < 0)) {
            let url = 'http://localhost:8080/login.html'
            window.location.href =  url
            console.log(url)
        } 

    }

提前感谢您的帮助。

就像在 JavaScript document.cookie 中一样。 cookie 在设定的到期时间后自动到期。同样react-cookie 也有opt expires。有没有办法可以用它来实现我想要的。

【问题讨论】:

    标签: javascript cookies reactjs


    【解决方案1】:

    如果您使用 setTimeout 创建一个计时器会怎样? 像

    setTimeout(function() {
      // check again for expire and redirect
    }, cookie.load('exp') - new Date().getTime())
    

    willMountdidMount 生命周期内

    【讨论】:

    • 是否会因为 new Date().getTime() 每毫秒改变一次而正常工作
    • 您可以将当前日期时间分配给一个变量,该变量捕获组件正在/已安装的当前时间。组件安装只发生一次,所以日期不会改变
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 2011-01-05
    • 2020-11-22
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 1970-01-01
    相关资源
    最近更新 更多