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)
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)
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)
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
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)
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)
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)
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)
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)
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错误
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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
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 # 当 上面的全部为真时,则登陆成功
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