я не могу войти через поддомен - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь войти в систему, отправив запрос 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 как путь, а не поддомен, процесс входа в систему будет работать!

...