示例#1
0
    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)