php csrf问题,一个请求生成一个csrf key token,但是界面用了两个POST?

查看:237
本文介绍了php csrf问题,一个请求生成一个csrf key token,但是界面用了两个POST?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

登录和注册放在一起了,但是一个请求只有一份csrf的key和token,这里会有两个POST,那这个怎么办呢?
我想到的是,分开或者一个成功后刷新页面

解决方案

没关系的呀,审核的csrf_token 都是session给的,我懂了,您的csrf_token是 放表单里的对吧,您可以放在meta标签里呀,通过ajax提交表单。或者甩在form外面每次异步提交就无所谓了,渲染视图的时候放在meta标签里或者丢出去,异步提交的时候抓回来丢到后端就可以了

$.request('post','/reg',{});
$.extend({
    /**
     * $.ajax请求的封装
     *
     * @usage return $.request("post", url, {}).done(function(responce) {}).fail(function() {});
     * @usage return $.request("post", url, null).then(function(responce) {});
     * 
     * @param {[type]} method   [POST/GET]
     * @param {[type]} url      [请求URL]
     * @param {[type]} data     [传递的数据]
     * @param {[type]} userOpts [自定义参数: {headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}}]
     *
     * @return {[type]} [description]
     */
    request: function(method, url, data, userOpts) {
        var defer, options;
        defer = $.Deferred();
        options = $.extend({
            method: method,
            url: url,
            dataType: "json",
            async: false,
            data: data,
            timeout: 3000,
            cache: false,
            headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') ? $('meta[name="csrf-token"]').attr('content') : ''},
            beforeSend: function(msg) {
                 // 发送前的调试
            }
        }, userOpts);
        $.ajax(options).done(function(data, textStatus, jqXHR) {
            
            //return defer[(data.error ? "reject" : "resolve")](data);
            return defer[(data.error ? "reject" : "resolve")](eval(data));
        }).fail(function(jqXHR) {
            window._hmt && window._hmt.push(['_trackEvent', 'AJAX_REQUEST_ERROR', 'error']);
        
            return defer.reject();
        });
        return defer.promise();
    }
});

这篇关于php csrf问题,一个请求生成一个csrf key token,但是界面用了两个POST?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆