Heartbeat / keep-alive服务刷新CSRF令牌

时间:2016-04-15 14:28:59

标签: javascript angularjs token frontend csrf-protection

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

问题:如果我们在同一页面上有很长的会话而没有重新加载,则令牌过期(例如在仙女期间或由于长形式)。

我们的想法是建立一个保持活跃的服务(心跳)来刷新'自动在后台进行会话(直到客户浏览器打开)。

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

1 个答案:

答案 0 :(得分:1)

在后端创建一个保持活动的服务来刷新

 @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);

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