【问题标题】:Heartbeat/keep-alive service to refresh CSRF token用于刷新 CSRF 令牌的心跳/保持活动服务
【发布时间】:2016-08-07 14:09:19
【问题描述】:

我们有一个完全面向服务的 Angular Web 应用程序,并且 ng 前端通过 ng-services 使用 REST Web 服务(到目前为止是标准的)。 为避免来自机器人或程序的任何自动 POST 请求,我们使用了 CSRF(跨站点请求伪造)令牌,该令牌经过服务器验证并在 15 分钟后过期。

问题:如果我们在同一页面上的长时间会话没有重新加载,令牌就会过期(例如在精灵期间或由于长表单)。

这个想法是建立一个保持活动的服务(心跳)以在后台自动“刷新”会话(直到客户浏览器打开)。

有什么想法吗?最佳实践? 谢谢

【问题讨论】:

    标签: javascript angularjs token frontend csrf-protection


    【解决方案1】:

    在后端创建一个keep-alive服务来刷新

     @RequestMapping(value = "/api/keep-alive", method = RequestMethod.GET)
        public boolean keepAlive() {
            //TODO refresh token session
            return true;
        }
    

    在您的主控制器位置:

     var v = setInterval(function () {
             currentlyFetching = $http.get('api/keep-alive');
      }, 15 * 1000);
    

    您的保活/心跳服务已经到位。

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 1970-01-01
      • 2015-08-17
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      相关资源
      最近更新 更多