Я создаю фляжный сервер с Flask-Login следующим образом:
Вход в систему работает (выводит правильного пользователя). Сразу после этого я делаю тестовый запрос. Он всегда возвращает анонимного пользователя и каждый раз другого (ожидая увидеть того, кто только что вошел в систему).
Запросы выполняются html-страницей на http-сервере с тем же (локальным) IP-адресом, но с другим портом, чем у сервера flask.
Это мой файл Python, использующий crossdomainflask:
from flask import *
from flask.ext.login import (LoginManager, UserMixin, login_user, current_user)
from crossdomainflask import *
class User(UserMixin):
def __init__(self, username):
self.name = username
@property
def id(self):
return self.name
class FlaskServer(object):
def __init__(self):
self.login_manager = LoginManager()
self.server = Flask(__name__)
self.server.secret_key = '123456'
self.server.config.update(PROPAGATE_EXCEPTIONS = True)
self.login_manager.init_app(self.server)
@self.login_manager.user_loader
def load_user(userid):
return User("test")
@self.server.route('/api/login', methods=['POST'])
@crossdomain(origin='*')
def login():
user = load_user(request.values.get('username'))
if user:
login_user(user)
print(current_user)
print(current_user.name)
return 'ok'
@self.server.route("/api/test", methods=['POST', 'GET'])
@crossdomain(origin='*')
def test():
print(current_user)
return 'ok'
self.server.run("0.0.0.0")
server = FlaskServer()