Я пытаюсь войти в систему, отправив запрос POST в мой API, где расширение Flask-Login
выполняет процесс авторизации.
API находится на отдельном поддомене api.local.products , вот конфигурации / etc / hosts на моей машине, а также конфигурация расширения:
192.168.0.108 local.products
192.168.0.108 .local.products
192.168.0.108 client.local.products
192.168.0.108 vendor.local.products
192.168.0.108 api.local.products
REMEMBER_COOKIE_NAME = 'products.remember'
REMEMBER_COOKIE_SECURE = None
REMEMBER_COOKIE_HTTPONLY = True
REMEMBER_COOKIE_REFRESH_EACH_REQUEST = True
REMEMBER_COOKIE_DOMAIN = '.local.products'
SESSION_COOKIE_NAME = 'products.store'
SESSION_TYPE = 'sqlalchemy'
SESSION_KEY_PREFIX = 'products.store'
SESSION_COOKIE_DOMAIN = '.local.products'
SESSION_PERMANENT = False
SESSION_COOKIE_SECURE = True
SESSION_SQLALCHEMY = SQLALCHEMY_DATABASE_URI
PERMANENT_SESSION_LIFETIME = timedelta(days=15)
api.py
@api_route.route('/user-login', methods=['POST'])
def user_login():
data = request.get_json()
login = data['user_login']
password = data['user_password'].encode('utf-8')
get_user = Users.query.filter(or_(Users.email == login, Users.telephone == login)).first()
if get_user:
if get_user.check_password(password):
if 'remember_me' in data:
login_user(get_user, remember=True)
else:
login_user(get_user, remember=False)
identity_changed.send(
current_app._get_current_object(),
identity=Identity(get_user.id)
)
return jsonify({'success': create_html_object.generate_html_template(), 'redirect': next_ or url_for('client.index', _external=True)+ f'#{get_user.public_id}' })
else:
return jsonify({'error': 'Username or Password is wrong!'})
else:
return jsonify({'error': 'Error happened!'})
Пользователь на самом деле не может войти, я не могу получить объект current_user , фактически я получаю ответ 200 без какой-либо ошибки, также я попытался использовать session['user_logged'] = get_user.public_id
и после получения сообщения об успешном входе пользователя в систему значение user_logged после перенаправления составляет None
Я забыл упомянуть, что, если я установлю API как путь, а не поддомен, процесс входа в систему будет работать!