token令牌为什么会防止重复提交?

来源:互联网 发布:澳洲本科留学成本知乎 编辑:程序博客网 时间:2024/05/20 18:47

    我的理解如下:

    服务器端生成一次性的token保存在用户session中,同时告知客户端。 在接收到客户端请求时,判断请求中的令牌和用户session中的令牌是否相同,相同则认为是初次提交,否则认为是重复提交。

    为保证token是一次性的,服务器端需要在每次判断token之后删除旧token。大体流程如下(伪代码):

   if (request.token == session.token) {

       // 初次提交,执行正常提交处理操作

       ...

       // 删除session中的token

       deleteToken();

    } else {

        // 重复提交, 提示“重复提交”

        ...

        // 生成新token并保存到session

        generateToken();

    }

 

原创粉丝点击