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)
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)
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