def refresh_token(): rds = g.rds if not request.data: return INVALID_PARAM() obj = json.loads(request.data) refresh_token = obj["refresh_token"] uid = Token.load_refresh_token(rds, refresh_token) if not uid: return INVALID_REFRESH_TOKEN() access_token = gobelieve.login_gobelieve(int(uid), "") if not access_token: return CAN_NOT_GET_TOKEN() tok = { 'expires_in': 3600, 'token_type': 'Bearer', "access_token":access_token, "refresh_token":obj["refresh_token"], 'uid':int(uid) } Token.save_access_token(g.rds, access_token, uid, 3600) return make_response(200, tok)
def register_user(): if not request.data: return INVALID_PARAM() req = json.loads(request.data) name = req.get('nickname') password = req.get('password') #短信验证码 code = req.get("code") number = req.get("number") country_code = req.get("country_code") if not name or not password or not code \ or not number or not country_code: return INVALID_PARAM() #check sms code if is_test_number(number): pass else: c2, timestamp, _ = code.get_verify_code(g.rds, country_code, number) if c1 != c2: return INVALID_CODE() password = generate_password_hash(password) phone_number = "+%s-%s"%(country_code, number) u = DBUser.get_user(g._db, phone_number) if u: uid = u['id'] DBUser.save_user(g._db, uid, name, password) else: uid = DBUser.add_user(g._db, name, password, phone_number) #登录动作 access_token = gobelieve.login_gobelieve(uid, name) if not access_token: return CAN_NOT_GET_TOKEN() tok = { 'expires_in': 3600, "access_token":access_token, "refresh_token":random_token_generator(), 'uid':uid } Token.save_access_token(g.rds, access_token, uid, 3600) Token.save_refresh_token(g.rds, tok['refresh_token'], uid) return make_response(200, tok)
def access_token(): if not request.data: return INVALID_PARAM() obj = json.loads(request.data) c1 = obj["code"] number = obj["number"] zone = obj["zone"] if is_test_number(number): pass else: c2, timestamp, _ = code.get_verify_code(g.rds, zone, number) if c1 != c2: return INVALID_CODE() uid = user.make_uid(zone, number) access_token = gobelieve.login_gobelieve(uid, "") if not access_token: return CAN_NOT_GET_TOKEN() u0 = user.get_user(g.rds, uid) u = user.User() u.uid = uid if u0 is None: u.state = "Hey!" else: u.state = u0.state user.save_user(g.rds, u) tok = { 'expires_in': 3600, 'token_type': 'Bearer', "access_token":access_token, "refresh_token":random_token_generator(), 'uid':int(uid) } Token.save_access_token(g.rds, access_token, uid, 3600) Token.save_refresh_token(g.rds, tok['refresh_token'], uid) return make_response(200, tok)
def loginSession(self, session, rds): access_token = gobelieve.login_gobelieve(int(session.uid), "") if not access_token: raise Error(404, "imsdk can't login") tok = { 'expires_in': TOKEN_EXPIRE, 'token_type': 'Bearer', "access_token":access_token, "refresh_token":random_token_generator(), 'uid':int(session.uid), 'sid':session.sid } Token.save_access_token(rds, access_token, int(session.uid), TOKEN_EXPIRE) session.expire(rds, TOKEN_EXPIRE) web.setcookie("sid", session.sid, TOKEN_EXPIRE) web.setcookie("token", access_token, TOKEN_EXPIRE) return json.dumps(tok)
def login(): if not request.data: return INVALID_PARAM() req = json.loads(request.data) password = req.get('password') number = req.get("number") country_code = req.get("country_code") phone_number = "+%s-%s"%(country_code, number) u = DBUser.get_user(g._db, phone_number) if not u: return INVALID_USERNAME() if not check_password_hash(u['password'], password): return INVALID_PASSWORD() uid = u['id'] nickname = u.get('nickname') avatar = u.get('avatar') state = u.get('state') nickname = nickname if nickname else "" avatar = avatar if avatar else "" state = state if state else "" access_token = gobelieve.login_gobelieve(uid, nickname) if not access_token: return CAN_NOT_GET_TOKEN() tok = { 'expires_in': 3600, "access_token":access_token, "refresh_token":random_token_generator(), 'uid':u['id'], 'avatar':avatar, 'state':state } Token.save_access_token(g.rds, access_token, u['id'], 3600) Token.save_refresh_token(g.rds, tok['refresh_token'], u['id']) return make_response(200, tok)