我有一个flask应用程序,它使用flask登录进行身份验证。使用flask内置的web服务器和本地运行的gunicorn,在本地一切都很好。但当它在heroku上时,它是有问题的,有时它让我登录,有时却没有。当我在导航几秒钟内成功登录时,我的会话就会被破坏并自动注销。这应该发生在用户注销时。在
我的视图中的以下代码片段可能与此相关:
@app.before_request
def before_request():
g.user = current_user
# I have index (/) and other views (/new) decorated with @login_required
我可能有类似的问题with this。它还没有任何答案,从我从评论中读到的,作者只是用python app.py
运行他的应用程序。这是通过使用flask的内置web服务器实现的。但是我似乎不能重复他的解决方法,因为运行app.run(host='0.0.0.0')
在端口5000
运行应用程序,而且由于权限原因,我似乎无法设置{
我看不到任何有用的日志,除了它没有验证,即使我应该。在
当我通过身份验证并尝试交替导航到/new
和/
时的部分日志,直到它将我注销:
程序文件:
web: gunicorn app:app
按照krato的说法(这让它工作起来了),我的应用程序仍然不能完美地工作。即使它第一次登录,我也可以保持刷新,最终会被注销。所以在阅读了this article之后,我将gunicorn设置为只使用一个worker,如下所示:
网址:gunicorn-w1:应用程序预加载
似乎起了作用。在
通过向gunicorn添加
preload
选项解决了这个问题。我不太清楚这是怎么解决问题的,如果有人能解释一下,我将不胜感激。在更新的过程文件:
web: gunicorn app:app preload
相关问题 更多 >
编程相关推荐