Exemplo n.º 1
0
def checkLogin():
    resp = {"code": 200, "msg": "登录成功", "data": {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "code不存在"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用接口出错"
        return jsonify(resp)

    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = "未绑定"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "未查询到绑定信息"
        return jsonify(resp)
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {"token": token}
    resp['data']['avatar'] = member_info.avatar
    resp['data']['nickname'] = member_info.nickname
    return jsonify(resp)
Exemplo n.º 2
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)

    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    reg_ip = req['reg_ip'] if 'reg_ip' in req else request.remote_addr
    '''
        判断是否已经测试过,注册了直接返回一些信息
    '''
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.reg_ip = reg_ip
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()

        # 放入user_info table里
        model_user = UserInfo()
        model_user.id = model_member.id
        model_user.nickname = nickname
        model_user.sex = sex
        model_user.reg_ip = reg_ip
        db.session.add(model_user)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token, 'openid': openid}
    return jsonify(resp)
Exemplo n.º 3
0
def checkReg():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)
    openid = MemberService.getWeChatOppenid(code)
    if not openid:
        resp['code'] = -1
        resp['msg'] = '授权失败1'
        return jsonify(resp)

    # 获取是否有绑定关系
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = '未绑定'
        return jsonify(resp)

    # 获取会员信息
    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = '会员不存在'
        return jsonify(resp)
    # 走到这一步说明 成功了 返回会员的 token 后续有用

    token = "{0}#{1}".format(MemberService.geneAuthCode(member_info),
                             member_info.id)
    resp['data'] = {"token": token}
    return jsonify(resp)
Exemplo n.º 4
0
def check_member_login():
    auth_cookie = request.headers.get("Authorization")

    if auth_cookie is None:
        return False

    auth_info = auth_cookie.split("#")
    if len(auth_info) != 2:
        return False

    try:
        member_info = Member.query.filter_by(id=auth_info[1]).first()
    except Exception:
        return False

    if member_info is None:
        return False
    print(auth_info[0])
    print(MemberService.geneAuthCode( member_info ))
    if auth_info[0] != MemberService.geneAuthCode( member_info ):

        return False
    print(member_info.status)
    if member_info.status != 1:
        return False
    return member_info
Exemplo n.º 5
0
def checkReg():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''  # 获取code
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

        # 使用code 向微信官方获取openid
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)
    bind_info = OauthMemberBind.query.filter_by(
        openid=openid, type=1).first()  # 用openid 判断是注册库中有没有此账号
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = "未绑定"
        return jsonify(resp)
    member_info = Member.query.filter_by(
        id=bind_info.member_id).first()  # 查出库中用户信息
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "未查询到绑定信息"
        return jsonify(resp)

    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 6
0
def checkReg():
    resp = {"code": 200, "msg": "操作成功~", "data": {}}
    req = request.values
    code = req["code"] if "code" in req else ""
    if not code or len(code) < 1:
        resp["code"] = -1
        resp["msg"] = "需要code~~"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp["code"] = -1
        resp["msg"] = "调用微信出错"
        return jsonify(resp)

    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp["code"] = -1
        resp["msg"] = "未绑定"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp["code"] = -1
        resp["msg"] = "未查询到绑定信息"
        return jsonify(resp)

    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp["data"] = {"token": token}
    return jsonify(resp)
Exemplo n.º 7
0
def checkReg():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    app.logger.info(req)
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)

    #取出openid
    openid = MemberService.getWechatOpenid(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = '调用微信出错'
        return jsonify(resp)

    # 查询是否有绑定关系
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = '该用户之前未绑定'
        return jsonify(resp)

    # 如果已经绑定取出用户绑定对应的信息
    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = '未查询到用户绑定信息'
        return jsonify(resp)

    token = '%s#%s' % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 8
0
def check_reg():
    resp = {'code': 200, 'msg': '登录成功~~', 'data': {}}
    req = request.values
    app.logger.info(req)

    code = req['code'] if 'code' in req else ""
    if code is None or len(code)<1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)

    # 获取openid 用户唯一标识
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)
    # 判断是否已经注册过,注册了直接返回一些信息
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = "未绑定"
        return jsonify(resp)
    member_info = Member.query.filter_by(id = bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "未查询到绑定信息"
        return jsonify(resp)

    # 进行md5加密
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {"token": token}

    return jsonify(resp)
Exemplo n.º 9
0
def check_reg():
    resp = {'code': 200, 'msg': "操作成功"}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "請重新登錄"
        return jsonify(resp)

    openid = MemberService.getWechatOpenid(code)

    app.logger.info(openid)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "請重新登錄"
        return jsonify(resp)

    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        resp['code'] = -1
        resp['msg'] = "未綁定"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "未查詢到綁定信息"
        return jsonify(resp)

    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}

    return jsonify(resp)
Exemplo n.º 10
0
def checkReg():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < -1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenid(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    # 查看是否 绑定关系openid 已有
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if bind_info is None:
        resp['code'] = -1
        resp['msg'] = "未绑定"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if member_info is None:
        resp['code'] = -1
        resp['msg'] = "未查询到绑定信息"
        return jsonify(resp)

    # 产生 token 表明已经绑定了!
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)  # 必须有 json的返回数据!因为 有request。否则会报 500/300错误
Exemplo n.º 11
0
def checkReg():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)

    openid = MemberService.getWeChatOpenid(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = '调用微信出错'
        return jsonify(resp)
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()

    if not bind_info:
        resp['code'] = -1
        resp['msg'] = '未绑定'
        return jsonify(resp)
    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = '未查询到绑定信息'
        return jsonify(resp)

    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}

    return jsonify(resp)
Exemplo n.º 12
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''

    if not code or len(code) < 1:  # 判断code是否合法
        resp['code'] = -1
        resp['msg'] = 'code缺失'
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)

    if openid is None:
        resp['code'] = -1
        resp['msg'] = '调用微信出错'
        return jsonify(resp)

    # 微信获取用户信息
    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    """
        判断是否已经存在过,注册了直接返回一些信息
    """

    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()

    if not bind_info:  # 判断是否绑定过

        # 注册到数据库表里
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.created_time = model_member.updated_time = getCurrentDate(
        )

        db.session.add(model_member)
        db.session.commit()

        # 建立绑定关系
        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.created_time = model_bind.updated_time = getCurrentDate()

        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = '%s#%s' % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}

    return jsonify(resp)
Exemplo n.º 13
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}  # 定义全局变量,操作成功返回信息
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    ## 通过code 可以获得用户的一些基本信息。获得的方法分到了公共方法里面
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:  # 如果用户的请求里面拿到的code没有 openid(用户唯一标识)
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0  # 性别
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''  # 头像链接

    ## 建立数据库,确认这个openid是不是唯一的
    """
    判断是否已经注册过了,注册了直接返回一些信息
    """
    bind_info = OauthMemberBind.query.filter_by(
        openid=openid, type=1).first()  # type=1:信息来源表示是微信用户

    if not bind_info:  # 没有信息,即没注册。进行注册
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()  # 秘钥
        model_member.created_time = getCurrentData()
        model_member.updated_time = getCurrentData()
        db.session.add(model_member)
        db.session.commit()

        # 建立绑定关系
        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1  # 信息来源1,
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.created_time = getCurrentData()
        model_bind.updated_time = getCurrentData()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind  # 将新的变量赋值给 bind_info,

    member_info = Member.query.filter_by(
        id=bind_info.member_id).first()  # 如果注册过了。会员信息 = 会员id (上面绑定用户的id)

    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id
                       )  # 将token(加密字符串),返回给前台处理
    resp['data'] = {'token': token}  # 返回给前台的数据
    return jsonify(resp)
Exemplo n.º 14
0
def login():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['mgs'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['mgs'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    gender = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    #  创建表 数据库文件 food.sql
    #  没有openid 才会产生注册这一个动作
    '''
        判断是否已经注册过,注册了直接返回一些信息
    '''
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        modle_member = Member()
        modle_member.nickname = nickname
        modle_member.gender = gender
        modle_member.avatar = avatar
        modle_member.salt = MemberService.geneSalt()
        modle_member.updated_time = modle_member.created_time = getCurrentDate(
        )
        db.session.add(modle_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = modle_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()
        bind_info = model_bind
        resp['msg'] = "操作成功"
    try:
        member_info = Member.query.filter_by(id=bind_info.member_id).first()
        resp['code'] = 200
        resp['msg'] = "已经绑定"
        resp['data'] = {'nickname': member_info.nickname}
    except Exception:
        resp['code'] = -1
        resp['msg'] = "请重试"
    finally:
        token = "%s#%s" % (MemberService.geneAuthCode(member_info),
                           member_info.id)
        resp['data'] = {'token': token}
        return jsonify(resp)
Exemplo n.º 15
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)
    # url = 'https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code'.format(
    # 	app.config['MINA_APP']['appid'], app.config['MINA_APP']['appkey'], code)
    # r = requests.get(url)
    # content = r.text
    # # app.logger.info(content) # {"session_key":"VZQjfF1ebiHhyTHgm4LfFg==","openid":"omXHE5AoiI3c8AlSF2e8IGv7tdq8"}
    # res = json.loads(content)  # <class 'dict'>
    # openid = res['openid'] if 'openid' in res else ''
    # 封装了代码
    openid = MemberService.getWeChatOppenid(code)
    if not openid:
        resp['code'] = -1
        resp['msg'] = '授权失败1'
        return jsonify(resp)
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if bind_info:
        # 如果根据 openid 能查到信息 则 用户已经授权过 直接返回用户信息即可
        member_info = Member.query.filter_by(id=bind_info.member_id).first()
        resp['code'] = 200
        resp['msg'] = '已经存在,无需重新授权'
        resp['data'] = {'nickname': member_info.nickname}
        return jsonify(resp)

    # 走到这一步 说明 用户 没授权过 则 新生产一个
    member_info = Member()
    member_info.nickname = nickname
    member_info.sex = sex
    member_info.avatar = avatar
    member_info.salt = MemberService.geneSalt()
    member_info.updated_time = member_info.created_time = geneTime()
    db.session.add(member_info)
    db.session.commit()

    model_bind = OauthMemberBind()
    model_bind.openid = openid
    model_bind.member_id = member_info.id
    model_bind.type = 1
    model_bind.updated_time = model_bind.created_time = geneTime()
    model_bind.extra = ''
    db.session.add(model_bind)
    db.session.commit()

    # resp['data'] = {'nickname': model_bind.openid}
    token = "{0}#{1}".format(MemberService.geneAuthCode(member_info),
                             member_info.id)
    resp['data'] = {"token": token}
    return jsonify(resp)
Exemplo n.º 16
0
def login():
    if request.method == 'GET':
        pass
    else:
        resp = {'code': 200, 'msg': '操作成功', 'data': {}}
        req = request.json
        app.logger.info(req)
        code = req['code'] if 'code' in req else ''
        # 013tK8KN1cKzh61YDBKN1vS2KN1tK8Kg
        if not code or len(code) < 1:
            resp['code'] = -1
            resp['msg'] = '需要code'
            return jsonify(resp)

        openid = MemberService.getWeChatOpenId(code)
        # oesTl5ZSMGOOY6lvlZijsxmPtowU
        if openid is None:
            resp['code'] = -1
            resp['msg'] = '连接微信服务器出错'
            return jsonify(resp)

        nickname = req['nickName'] if 'nickName' in req else ''
        sex = req['gender'] if 'gender' in req else ''
        avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
        '''
            判断是否已经注册过,注册了直接返回一些信息
        '''
        bind_info = OauthMemberBind.query.filter_by(openid=openid,
                                                    type=1).first()
        if not bind_info:
            model_member = Member()
            model_member.nickname = nickname
            model_member.sex = sex
            model_member.avatar = avatar
            model_member.salt = MemberService.geneSalt()
            model_member.updated_time = model_member.created_time = getCurrentDate(
            )
            db.session.add(model_member)
            db.session.commit()

            model_bind = OauthMemberBind()
            model_bind.member_id = model_member.id
            model_bind.type = 1
            model_bind.openid = openid
            model_bind.extra = ''
            model_bind.updated_time = model_bind.created_time = getCurrentDate(
            )
            db.session.add(model_bind)
            db.session.commit()

            bind_info = model_bind
        member_info = Member.query.filter_by(id=bind_info.member_id).first()
        token = "%s#%s" % (MemberService.geneAuthCode(member_info),
                           member_info.id)
        resp['data'] = {'token': token}
        return jsonify(resp)
Exemplo n.º 17
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values  # 得到前端的数据
    # app.logger.info(req)
    code = req['code'] if 'code' in req else ''  # 获取code!
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    # 向微信发送code获取唯一标识openID
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    # 从前端获取信息(昵称,性别,头像)
    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''

    # 从绑定表中通过openID查找是否存在,即是否已经注册
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:  # 没有绑定
        # 如果没有绑定,则需要注册到member和关联表中
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()  # 产生随机字符串
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()  # 保存到数据库

        # 注册关联
        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    # 如果已经注册,则返回信息
    member_info = Member.query.filter_by(
        id=bind_info.member_id).first()  # 则获取详细信息
    # 这里是第一次登陆注册,发票据!!!!
    # app.logger.info(member_info.id)
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 18
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)
    # app.logger.info(req)
    # 使用code 向微信官方获取openid
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else ''
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    '''
       判断是否已经测试过,注册了直接返回一些信息
    '''
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:  # 如果没有注册
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        try:
            db.session.commit()
        except Exception as e:
            print(e)
            resp['code'] = -1
            resp['msg'] = "提交数据库出错"
            db.session.rollback()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''  # 扩展字段
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 19
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(
        code)  # 根据拿到的code(临时登录凭证),加上小程序id,密匙,可以拿到用户的openid
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    # print(req)
    # 判断是否已经测试过,注册了直接返回一些信息
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.reg_ip = request.remote_addr
        model_member.salt = MemberService.gene_salt()
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(
        id=bind_info.member_id).first()  #拿到用户信息,生成token

    token = "%s#%s" % (
        MemberService.gene_auth_code(member_info), member_info.id)  # token信息
    resp['data'] = {'token': token}

    return jsonify(resp)
Exemplo n.º 20
0
def login():
    resp = {'code': 200, 'msg': '操作成功', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)
    # 通过前端传回来的code,再通过链接获取openid

    openid = MemberService.getWeChatOpenId(code)

    if openid is None:
        resp['code'] = -1
        resp['msg'] = '调用微信出错'
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else ''
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''

    # 判断是否已经绑定了openid,注册了直接返回一些信息
    oauth_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not oauth_info:
        # 会员信息
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.reg_ip = request.remote_addr
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()

        # 授权信息
        model_oauth = OauthMemberBind()
        model_oauth.member_id = model_member.id
        model_oauth.type = 1
        model_oauth.extra = ''
        model_oauth.openid = openid
        model_oauth.updated_time = model_oauth.created_time = getCurrentDate()
        db.session.add(model_oauth)
        db.session.commit()
        #
        oauth_info = model_oauth

    member_info = Member.query.filter_by(id=oauth_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 21
0
def login():
    resp = {'code': 200, 'msg': '登录成功~~', 'data': {}}
    req = request.values
    app.logger.info(req)

    code = req['code'] if 'code' in req else ""
    if not code or len(code)<1:
        resp['code'] = -1
        resp['msg'] = '需要code'
        return jsonify(resp)
    #获取openid 用户唯一标识
    openid = MemberService.getWeChatOpenId(code)

    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    #获取用户基本信息
    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    #判断是否已经注册过,注册了直接返回一些信息
    bind_info = OauthMemberBind.query.filter_by(openid=openid,type = 1).first()
    if not bind_info:
        #创建用户
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = model_member.created_time = getCurrentDate()
        db.session.add(model_member)
        db.session.commit()
        #创建绑定用户,后期删除小程序,直接判断是否绑定
        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind
    member_info = Member.query.filter_by(id = bind_info.member_id).first()
    #进行md5加密
    token = "%s#%s" %(MemberService.geneAuthCode(member_info),member_info.id)
    resp['data'] = {"token":token,"nickname":nickname}

    return jsonify(resp)
Exemplo n.º 22
0
def login():
    resp = {'code': 200, 'msg': "操作成功"}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "請重新登錄"
        return jsonify(resp)

    openid = MemberService.getWechatOpenid(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "請重新登錄"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    '''
    判斷是否已經註冊,if so 直接返回登錄頁面
    '''

    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}

    return jsonify(resp)
Exemplo n.º 23
0
def login():
    resp = {"code": 200, "msg": "登录成功", "data": {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "code不存在"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用接口出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    gender = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''

    # 判断是否注册过了
    # 没有注册过的用户,加入数据库当中,进行注册
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.gender = gender
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_member.updated_time = model_member.created_time = getCurrentDate(
        )
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    # 已注册的用户直接查询信息
    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {"token": token}
    return jsonify(resp)
Exemplo n.º 24
0
def login():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)
    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    city = req['city'] if 'avatarUrl' in req else ''
    '''
        判断是否已经测试过,注册了直接返回一些信息
    '''
    bind_info = Member.query.filter_by(openid=openid).first()
    app.logger.info(bind_info)
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.created_time = getCurrentDate()
        model_member.openid = openid
        model_member.reg_ip = request.remote_addr
        model_member.city = city
        db.session.add(model_member)
        db.session.commit()
    bind_info = Member.query.filter_by(openid=openid).first()
    token = "%s#%s" % (MemberService.geneAuthCode(bind_info), bind_info.id)
    mes = {
        'id': bind_info.id,
        'nickname': bind_info.nickname,
        'sex': bind_info.sex,
        'reg_ip': bind_info.reg_ip,
        'created_time': bind_info.created_time,
        'avatar': bind_info.avatar,
        'city': bind_info.city
    }
    resp['data'] = {'token': token}
    resp['data']['list'] = mes
    return jsonify(resp)
Exemplo n.º 25
0
def login():
    resp = {'code': 200, 'msg': 'success', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错,请重新调用"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ""
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatar'] if 'avatar' in req else ""
    """
    判断是否注册过,如果注册过直接返回
    """
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = getCurrentDate()
        model_member.created_time = getCurrentDate()
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = getCurrentDate()
        model_bind.created_time = getCurrentDate()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
Exemplo n.º 26
0
def login():
  resp = {'code':200,'msg':'操作成功','data':{}}
  req = request.values
  code = req['code'] if 'code' in req else ''
  if not code or len(code) < 1:
    resp['code'] = -1
    resp['msg'] = '需要code'
    return jsonify(resp)
  
  openid = MemberService.getWeChatOpenId(code)
  if openid is None:
    resp['code'] = -1
    resp['msg'] = '调用微信出错'
    return jsonify(resp)

  nickname = req['nickName'] if 'nickName' in req else ''
  sex = req['gender'] if 'gender' in req else ''
  avatar = req['avatarUrl'] if 'avatarUrl' in req else ''

  # 判断是否已经绑定过,如果已经绑定则直接返回一些信息
  bind_info = OauthMemberBind.query.filter_by(openid=openid,type=1).first()
  if not bind_info:
    model_member = Member()
    model_member.nickname = nickname
    model_member.sex = sex
    model_member.avatar = avatar
    model_member.reg_ip = ''
    model_member.salt = MemberService.geneSalt()
    model_member.updated_time = model_member.updated_time = getCurrentDate()
    db.session.add(model_member)
    db.session.commit()

    model_bind = OauthMemberBind()
    model_bind.member_id = model_member.id
    model_bind.type = 1
    model_bind.client_type = 'weixin'
    model_bind.openid = openid
    model_bind.updated_time = model_bind.updated_time = getCurrentDate()
    model_bind.extra = ''
    db.session.add(model_bind)
    db.session.commit()

    bind_info = model_bind

  member_info = Member.query.filter_by(id=bind_info.member_id).first()
  token = '%s#%s'%(MemberService.geneAuthCode(member_info),member_info.id)
  resp['data'] = {'token':token}
  return jsonify(resp)
Exemplo n.º 27
0
def check_member_login():
    auth_cookie = request.headers.get("Authorization")

    if auth_cookie is None:  # 如果页面中没有cookies
        return False

    auth_info = auth_cookie.split("#")  # de0e0f7e2848bcbb9e00fd5458393257#1
    if len(auth_info) != 2:  # 不是标准的cookies
        return False

    try:
        member_info = Member.query.filter_by(
            id=auth_info[1]).first()  # 查询能否和数据库中cookies对应
    except Exception as e:
        return False  # 查不到接收异常为False

    if member_info is None:  # 有效性检验,但我感觉没必要,应该会有值,因为数据表设置的是非空,不过显得更加严谨
        return False

    if auth_info[0] != MemberService.geneAuthCode(
            member_info):  # 如果得到的cookies值和通过我们对数据库中值加密过后的不一样,则是伪造
        return False

    if member_info.status != 1:  # 已登录禁用账号刷新后退出登录
        return False

    return member_info
Exemplo n.º 28
0
def check_member_login():
    auth_cookie = request.headers.get("Authorization")

    if auth_cookie is None:  # 没有就返回错
        return False

    auth_info = auth_cookie.split("#")  # 我们生成token的时候规定#后面的就是用户id,由此分割可以取到id
    if len(auth_info) != 2:
        return False

    try:
        member_info = Member.query.filter_by(
            id=auth_info[1]).first()  # 根据分割得到的id取得会员信息
    except Exception:
        return False

    if member_info is None:
        return False

    if auth_info[0] != MemberService.geneAuthCode(
            member_info):  # 得到了id 再对比token!
        return False

    if member_info.status != 1:
        return False

    return member_info
Exemplo n.º 29
0
def check_member_login():
    auth_cookie = request.headers.get("Authorization")   # 取出小程序会员的 头信息里面的这个授权码,进行验证

    if auth_cookie is None:
        return None

    auth_info = auth_cookie.split('#')
    if len(auth_info) !=2:
        return False  # 即为空

    try:
        member_info = Member.query.filter_by( id=auth_info[1] ).first()  # id 为 Authorization 加密后‘#’ 后面的部分
    except Exception:
        return False

    if member_info is None:  #如果拿到的加密信息(cookie值)里面的 uid,在数据库里面查不到这个user_info信息,说明这个uid是伪造的,uid为假
        return False

    if auth_info[0] != MemberService.geneAuthCode( member_info ):  # 如果uid为真,加密信息(cookie值)里面的 授权码部分 != 我们定义的授权码
        # 因为授权码,是通过数据库的uid对应数据生成的。但是,网页请求返回的授权码可能被篡改过
        return False

    if member_info.status != 1:
        return False

    return member_info  # 当 上面的全部为真时,则登陆成功
Exemplo n.º 30
0
def check_member_login():

    auth_cookie = request.headers.get('Authorization')
    # app.logger.info(auth_cookie)
    if auth_cookie is None:
        return False

    auth_info = auth_cookie.split('#')
    if len(auth_info) != 2:
        return False
    try:
        member_info = Member.query.filter_by(id=auth_info[1]).first()
    except Exception:
        return False

    if member_info is None:
        return False

    # 判断cookie是否一致
    if auth_info[0] != MemberService.geneAuthCode(member_info):
        return False

    if member_info.status != 1:
        return False

    return member_info