Я создаю сервер склянки с Колба-Войти, как это:Как сделать Колба запомнить логин сессии
Logging в работах (он печатает правильный пользователь). Сразу после этого я делаю тестовый запрос. Он всегда возвращает анонимного пользователя и другой каждый раз (ожидая увидеть того, кто только что вошел в систему).
Запросы создаются с помощью html-страницы на http-сервере на одном и том же (локальном) IP-адресе, но с другим портом, кроме сервера флэков.
Это мой файл питона, используя 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()
Не используйте md5 для «шифрования» паролей. Не допускайте перекрестный домен для входа в систему. Не разрешать вход с помощью get ... –
Просто вставил исполняемый скрипт python. – Toast