2016-09-25 6 views
1

私はFlask-Loginを使用して認証するフラスコアプリを持っています。フラスコのWebサーバに組み込まれたものと、ローカルで動作するgunicornの両方を使って、すべてがローカルでうまく動作します。しかし、それが英雄の上にあるとき、それは間違っている、時にはそれは私をログインし、時々そうではありません。セッションをナビゲートして数秒以内に正常にログインすると、ただ破棄されて自動的にログアウトされます。これは、ユーザーがログアウトしたときに発生します。Heroku gunicornフラスコのログインが正しく機能していません

私の見解では、次のコードスニペットは、関連するかもしれない:

@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と彼のアプリを実行しました。これは、フラスコの内蔵Webサーバーを使用することによるものです。しかし、app.run(host='0.0.0.0')を実行すると、5000というポートでアプリが実行され、許可のためにport=80を設定することができないため、彼の回避策を複製できないようです。

ログに役立つ情報は表示されません。ただし、必要なときにも認証されません。私が認証され、それが私をログアウトするまで交互に/new/に移動しようとしたしまったログの

パート:

2016-09-25T06:57:53.052378+00:00 app[web.1]: authenticated - IP:10.179.239.229 
2016-09-25T06:57:53.455145+00:00 heroku[router]: at=info method=GET path="/" host=testdep0.herokuapp.com request_id=c7c8f4c9-b003-446e-92d8-af0a81985e72 fwd="124.100.201.61" dyno=web.1 connect=0ms service=116ms status=200 bytes=6526 
2016-09-25T06:58:11.415837+00:00 heroku[router]: at=info method=GET path="/new" host=testdep0.herokuapp.com request_id=ae5e4e29-0345-4a09-90c4-36fb64785079 fwd="124.100.201.61" dyno=web.1 connect=0ms service=7ms status=200 bytes=2552 
2016-09-25T06:58:13.543098+00:00 heroku[router]: at=info method=GET path="/" host=testdep0.herokuapp.com request_id=47696ab9-57b9-4f20-810a-66033e3e9e50 fwd="124.100.201.61" dyno=web.1 connect=0ms service=8ms status=200 bytes=5982 
2016-09-25T06:58:18.037766+00:00 heroku[router]: at=info method=GET path="/new" host=testdep0.herokuapp.com request_id=98912601-6342-4d71-a106-26056e4bbb21 fwd="124.100.201.61" dyno=web.1 connect=0ms service=3ms status=200 bytes=2552 
2016-09-25T06:58:19.619369+00:00 heroku[router]: at=info method=GET path="/" host=testdep0.herokuapp.com request_id=2b04d31f-93a2-4653-83a4-f95ca9b97149 fwd="124.100.201.61" dyno=web.1 connect=0ms service=3ms status=302 bytes=640 
2016-09-25T06:58:19.953910+00:00 heroku[router]: at=info method=GET path="/login?next=%2F" host=testdep0.herokuapp.com request_id=e80d15cd-e9ad-45ff-ae54-e156412fe4ff fwd="124.100.201.61" dyno=web.1 connect=0ms service=3ms status=200 bytes=2793 

Procfile:

web: gunicorn app:app

答えて

1

問題はで解決しましたgunicornに--preloadオプションを追加します。私はそれがどのように問題を解決し、誰かが説明することができれば感謝しています。

更新Procfile:

web: gunicorn app:app --preload

0

kratoは、私のアプリはまだ完璧に働いていなかった(それがすべてで、動作するようになっている)言ったことにフォローアップ。初めてログインした場合でも、私はきれいに保つことができ、最終的にはログアウトされます。

ウェブ:アプリはトリックを行うように見えた

を--preload:-w 1をgunicornのでthis articleを読んだ後、私はそうのような唯一の1労働者を使用するようにgunicornを設定します。

関連する問題