相关疑难解决方法(0)

Flask-Login和Heroku问题

我在这个URL上有一个示例Web应用程序(在heroku上运行flask-login的烧瓶):http://twittaclone.herokuapp.com.

当我在我的localhost上运行它时,登录功能正常.当我推送到heroku时它会吓坏并且不允许用户登录(它允许用户注册).正在进行数据库修改.

为什么烧瓶登录不能在heroku上运行?

app = Flask(__name__)
mysql = MySQL()

app.config['MYSQL_DATABASE_HOST'] = os.environ['MYSQL_DATABASE_HOST'] if 'MYSQL_DATABASE_HOST' in os.environ else config.MYSQL_DATABASE_HOST
app.config['MYSQL_DATABASE_PORT'] = os.environ['MYSQL_DATABASE_PORT'] if 'MYSQL_DATABASE_PORT' in os.environ else config.MYSQL_DATABASE_PORT
app.config['MYSQL_DATABASE_USER'] = os.environ['MYSQL_DATABASE_USER'] if 'MYSQL_DATABASE_USER' in os.environ else config.MYSQL_DATABASE_USER
app.config['MYSQL_DATABASE_PASSWORD'] = os.environ['MYSQL_DATABASE_PASSWORD'] if 'MYSQL_DATABASE_PASSWORD' in os.environ else config.MYSQL_DATABASE_PASSWORD
app.config['MYSQL_DATABASE_DB'] = os.environ['MYSQL_DATABASE_DB'] if 'MYSQL_DATABASE_DB' in os.environ else config.MYSQL_DATABASE_DB

mysql.init_app(app)

if 'SECRET_KEY' in os.environ: app.config['SECRET_KEY'] = os.environ['SECRET_KEY']
else: app.config['SECRET_KEY'] = os.urandom(24)

def connect_db(): return mysql.connect()


###
# Routing for your application. …
Run Code Online (Sandbox Code Playgroud)

python heroku flask flask-login

5
推荐指数
1
解决办法
1453
查看次数

使用gunicorn和Flask时出现CSRF令牌错误

我开发了一个网络应用程序,其中包含用户登录和注册的功能。我已经按照文档和教程完成了所有操作,并且 Flask 服务器一切正常。

问题是:我使用gunicorn并启动一个Web服务器,(localhost:8000)在几种不同的浏览器(Linux上的Brave和Firefox,以及Android上的Brave)上打开地址,我只能从一个客户端登录(单个或多个不同的用户)。当我尝试从另一个请求执行此操作时,它会抛出 400 Bad Request(CSRF 会话令牌丢失或 CSRF 会话令牌不匹配)。

现在,使用 Flasks Server 时不会发生这种情况。它只发生在使用gunicorn时。

我已将应用程序部署到 Heroku(使用免费计划),并且我希望多个用户同时登录。我的应用程序拥有的所有其他表单都会发生这种情况。

所有环境变量、密钥均已正确配置,使用 Flask Server 时一切都按预期运行。除此以外,使用 Gunicorn 不会导致任何其他问题。有时,从单个客户端登录也不起作用。

任何帮助,将不胜感激。我已经查看了其他相关的线程/问题,但他们没有提到我遇到的问题

flask gunicorn flask-wtforms

5
推荐指数
1
解决办法
1006
查看次数

标签 统计

flask ×2

flask-login ×1

flask-wtforms ×1

gunicorn ×1

heroku ×1

python ×1