def login():
"""login as our user.
input: LoginRequest (if POST)
output: ok.
Request:
?email=xx&password=xx[&remember_me=1] (if GET, else arguments in LoginRequest)
"""
if request.method == "POST":
input_pb = protobuf_json.json2pb(all_pbs.LoginRequest(), request.get_json())
else:
input_pb = all_pbs.LoginRequest()
input_pb.email = request.args.get("email", "")
input_pb.password = request.args.get("password", "")
input_pb.remember = request.args.get("remember", "") == "1"
table = data_models.GetTable(data_models.RW_USERS)
user_pb = data_models.ToProto(table.find_one({"info.email": input_pb.email}), data_models.RW_USERS)
if not user_pb or user_pb.info.password != input_pb.password:
abort(400)
user = user_util.FLUser(user_pb)
flogin.login_user(user, remember=input_pb.remember)
session.permanent = True
return 'ok'
评论列表
文章目录