我正在使用Flask-Login创建一个Flask服务器,代码如下:
登录功能正常(能够正确打印用户信息)。但是在此之后,我进行了一个测试请求,每次都返回一个匿名用户而非刚刚登录的用户。
这些请求由一个HTML页面发起,该页面位于与Flask服务器相同的IP地址上,但端口不同的HTTP服务器上。
以下是我的Python文件,使用crossdomainflask:
登录功能正常(能够正确打印用户信息)。但是在此之后,我进行了一个测试请求,每次都返回一个匿名用户而非刚刚登录的用户。
这些请求由一个HTML页面发起,该页面位于与Flask服务器相同的IP地址上,但端口不同的HTTP服务器上。
以下是我的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()