Вход через AJAX на Flask-Вход

#python #reactjs #flask #flask-login

#python #reactjs #flask #flask-логин

Вопрос:

Когда я пытаюсь выполнить вход через ajax (‘/ login’) с пользователем и паролем, он входит в систему, но когда я пытаюсь получить данные пользователя после входа в систему current_user является анонимным. У меня есть 3 маршрута:

  • /login: введите параметры пользователя и пароль. Маршрутизатор принимает пользователя и пароль и выполняет вход в систему.
  • /user: ВОЗВРАЩАЕТ данные пользователя (имя, адрес электронной почты), если пользователь вошел в систему в другом 404
  • / logout: GET выполняет выход из системы

/user и /logout не будут работать, потому что пользователь не входит в систему, когда я $.get эти маршруты.

Маршруты API (логин, пользователь, выход из системы) находятся на ‘localhost: 5000’, в то время как интерфейс ReactJS находится на ‘localhost: 3000’.

Мой пользовательский загрузчик:

 @login_manager.user_loader
def load_user(user_id):
    try:
        return User.query.get(user_id)
    except:
        return None
  

/ маршрут входа:

 @view.route('/login', methods=['POST'])
def login():
    user = User.query.filter_by(email=request.form['email']).first()
    if user and check_password_hash(
            user.password, request.form['password']):
        print(login_user(user, remember=True))
        response = jsonify(user.serialize)
        response.headers.add('Access-Control-Allow-Origin', '*')
        return response
    else:
        return 404
  

/ пользовательский маршрут:

 @view.route('/user', methods=['GET'])
def get_user():
    if current_user.is_authenticated:
        response = jsonify(User.query.get(current_user.id).serialize)
        response.headers.add('Access-Control-Allow-Origin', '*')
        return response
    else:
        abort(404)
  

В /user после того, как я вошел в current_user, является AnnonymousUserMixin.

Чего мне здесь не хватает?