Esempio n. 1
0
def cklogin():
    res = {'code': 1, 'msg': '成功', 'data': {}}
    code = request.form.get('code')
    if len(code) < 1:
        res['code'] = -1
        res['msg'] = 'code错误'
        return jsonify(res)

    open_id = memberService.getOpenid(code)
    print('====================', open_id)
    if not open_id:
        res['code'] = -1
        res['msg'] = '获取openid出错'
        return jsonify(res)
    oauthmemberbind = OauthMemberBind.query.filter_by(openid=open_id).first()

    if not oauthmemberbind:
        res['code'] = -1
        res['msg'] = '用户不存在'
        return jsonify(res)

    member = Member.query.get(oauthmemberbind.member_id)
    token = "%s#%s" % (memberService.geneAuthCode(member), member.id)
    res['data']['token'] = token
    return jsonify(res)
Esempio n. 2
0
def login():
    res = {'code': 1, 'msg': '成功', 'data': {}}
    nickName = request.form.get('nickName')
    avataUrl = request.form.get('avataUrl')
    gender = request.form.get('gender')
    code = request.form.get('code')
    print(nickName, avataUrl, gender, code)

    if len(code) < 1:
        res['code'] = -1
        res['msg'] = 'code有误'
        return jsonify(res)

    if not all([nickName, avataUrl, gender, code]):
        res['code'] = -1
        res['msg'] = '参数有误'
        return jsonify(res)

    # 获取open_id
    open_id = memberService.getOpenid(code)
    if not open_id:
        res['code'] = -1
        res['msg'] = '获取open_id出错'
        return jsonify(res)

    #存数据库去重
    oauthMemberBind = OauthMemberBind.query.filter_by(openid=open_id).first()
    if not oauthMemberBind:
        member = Member()
        member.nickname = nickName
        member.avatar = avataUrl
        member.gender = gender
        member.salt = memberService.getSalt()

        db.session.add(member)
        db.session.commit()

        Oauth_member_bind = OauthMemberBind()
        Oauth_member_bind.openid = open_id
        Oauth_member_bind.client_type = 'wx'
        Oauth_member_bind.type = 1
        Oauth_member_bind.member_id = member.id

        db.session.add(Oauth_member_bind)
        db.session.commit()

    member = Member.query.get(oauthMemberBind.member_id)
    #生成前端所需要的token
    token = "%s#%s" % (memberService.geneAuthCode(member), member.id)
    res['data']['token'] = token
    return jsonify(res)
Esempio n. 3
0
def before_request():
    # 前端api接口忽略 忽略token
    ignore_urls = current_app.config.get('IGNORE_URLES')
    if request.path in ignore_urls:
        return

    # 管理后台和静态文件 忽略token
    if '/api' not in request.url or '/static' in request.url:
        return

    print(
        'before_requestbefore_requestbefore_requestbefore_requestbefore_request'
    )
    resp = {'code': 1, 'msg': '成功', 'data': {}}
    # f19f1e60450b2341fc69a2a9122eb33c#3     取到token

    # g变量可以作为请求之间传递参数的信使
    g.member = None
    token = request.headers.get('token')

    if not token:
        resp['code'] = -1
        resp['msg'] = '必须登录'
        return jsonify(resp)
    # (f19f1e60450b2341fc69a2a9122eb331,3)
    tuple_token = token.split('#')

    if len(tuple_token) != 2:
        resp['code'] = -1
        resp['msg'] = 'token错误'
        return jsonify(resp)

    # 查会员
    member = Member.query.get(tuple_token[1])

    # 如果查不到会员
    if not member:
        resp['code'] = -1
        resp['msg'] = '没有找到该用户'
        return jsonify(resp)

    # 根据查到会员 生成token
    c_token = memberService.geneAuthCode(member)

    # 根据生成的token跟取到token
    if c_token != tuple_token[0]:
        resp['code'] = -1
        resp['msg'] = 'token错误'
        return jsonify(resp)

    g.member = member