def session_route()

in dialogflow-cx/vpc-sc-demo/backend/session_blueprint.py [0:0]


def session_route():
    """Get session cookie."""
    session_id = uuid.uuid4().hex
    with open(PUBLIC_PEM_FILENAME, "r", encoding="utf8") as file_handle:
        public_pem = file_handle.read()
    state = b64encode(
        json.dumps(
            {
                "return_to": su.login_landing_uri(
                    flask.request, query_params=flask.request.args
                ),
                "session_id": session_id,
                "public_pem": public_pem,
            }
        ).encode()
    ).decode()
    response = flask.redirect(f"{AUTH_SERVICE_LOGIN_ENDPOINT}?state={state}")
    response.set_cookie(
        "session_id",
        value=session_id,
        secure=True,
        httponly=True,
        domain=su.user_service_domain(flask.request),
        expires=datetime.datetime.now() + datetime.timedelta(hours=1),
    )
    response.set_cookie(
        "user_logged_in",
        value="true",
        secure=True,
        httponly=False,
        domain=su.user_service_domain(flask.request),
        expires=datetime.datetime.now() + datetime.timedelta(hours=1),
    )
    return response