def post(self) : try : args = self.reqparse.parse_args() user = User.authenticate(args['email'], args['password']) if not user : print "can't find user" abort(404) # first try and get an existing and valid token tokens = Token.query.filter((Token.user_id==user.id and Token.valid)).first() if tokens : return jsonify({"code" : 200, "user" : marshal(user, user_fields), "token" : tokens.value}) # otherwise make them a new one new_token = Token(user_id=user.id) if not new_token : print "can't make new token" abort(403) user.tokens.append(new_token) db.session.add(user) db.session.commit() return jsonify({"code" : 200, "user" : marshal(user, user_fields), "token" : new_token.value}) except Exception, e : print str(e) return abort(403)