美文网首页web服务器
爱家(租房系统)---- 实名认证

爱家(租房系统)---- 实名认证

作者: GHope | 来源:发表于2018-10-23 20:13 被阅读12次

    实名认证功能主要为之后的发布房源功能做铺垫。且实名认证之后便不能在修改实名信息。

    前端发起的局部刷新请求

    /user/auths/发出get请求,得到后台返回的数据进行渲染到对应input框中,之后判断后台是否返回有效值,若有效则隐藏实名认证的按钮,并对input框设置不能修改的属性。若无效则不对前端进行操作,可有用户提交实名认证的请求,提交数据至后台。

    $(document).ready(function(){
        $.get('/user/auths/',function (data) {
        $('#real-name').val(data.id_name);
        $('#id-card').val(data.id_card);
        if(data.id_name!=null && data.id_card!= '') {
            $('.btn-success').hide();
            $('#real-name').attr('disabled','disabled');
            $('#id-card').attr('disabled','disabled');
        }
        });
        $('#form-auth').submit(function (){
            $.ajax({
                url:'/user/auths/',
                type:'put',
                data:{
                    id_name:$('#real-name').val(),
                    id_card:$('#id-card').val()
                },
                dataType:'json',
                success:function (data) {
                    if(data.code=='200'){
                        $('.btn-success').hide();
                        $('.error-msg').hide();
                    }else{
                        $('.error-msg').html('<i class="fa fa-exclamation-circle"></i>'+data.msg);
                        $('.error-msg').show();
                    }
                }
            });
        });
    })
    

    后台进行的操作

    对Ajax请求进行判断,若为GETt请求只需返回用户数据库中信息即可,若为PUT请求则获取前端传递的参数进行校验。校验无误后储存到数据库中即可。此处只是简单的对身份证做了一个数字位数的正则验证,仅供参考,实际中是使用不了的。

    '''
    展示实名认证的界面
    '''
    @user_blueprint.route('/auth/')
    @is_login
    def auth():
        return render_template('auth.html')
    
    
    '''
    实名认证
    '''
    @user_blueprint.route('/auths/', methods=['GET', 'PUT'])
    @is_login
    def auth_info():
        if request.method == 'GET':
            """
            返回认证信息
            """
            # 获取当前登录用户的编号
            user_id = session['user_id']
            # 根据编号查询当前用户
            user = User.query.get(user_id)
            # 返回用户的真实姓名、身份证号
            return jsonify(user.to_auth_dict())
    
        if request.method == 'PUT':
            """
            处理认证请求
            """
            id_name = request.form.get('id_name')
            id_card = request.form.get('id_card')
            # 验证参数完整性
            if not all([id_card, id_name]):
                return jsonify(status_code.PARAMS_ERROR)
            # 验证身份证号合法
            if not re.match(r'^[1-9]\d{17}$', id_card):
                return jsonify(status_code.USER_REGISTER_AUTH_ERROR)
            # 修改数据对象
            try:
                user = User.query.get(session['user_id'])
            except:
                return jsonify(status_code.DATABASE_ERROR)
    
            try:
                user.id_card = id_card
                user.id_name = id_name
                user.add_update()
            except:
                return jsonify(status_code.DATABASE_ERROR)
            # 返回数据
            return jsonify(status_code.SUCCESS)
    

    相关文章

      网友评论

      • 乐健君:实在找不到能够看懂的了:sob:那么也要支持:smile:
        GHope:@乐健君 老哥仗义!!!🍻

      本文标题:爱家(租房系统)---- 实名认证

      本文链接:https://www.haomeiwen.com/subject/jpikzftx.html