そのため、通常、私が扱っている大規模な Web サイトでは、セッション情報をデータベースに保存して、Cookie を簡単に複製できないようにする必要があります。
フラスコログインを使用すると、token_loader を使用して、たとえばトークンを ID にマッピングするためにセッションテーブルを照会する関数を実装する方法があります。
ただし、これは、セッション テーブルがユーザー テーブルと同じサイズになることを意味します。
id = db.Column(db.Integer, primary_key=True)
token = db.Column(db.String(250), unique=True)
uid = db.Column(db.Integer, unique=True)
@login_manager.token_loader
def token_load(token):
return User.sessions.first().token
ユーザー テーブル情報で 8 MB がいっぱいのサイトを見たことがあります。たとえば、サイトは Drupal のセッション テーブルの行で詰まってしまいます。この方法でトークンを保管するのは賢明ですか? トークンの値を伝える各ユーザーの行だけですか?
基本的には、実際にログインするのではなく、Cookie を持つユーザーを識別するためのパスワード テーブルのようなものです。
フラスコログインのどこかでこれの実装を見た人はいますか?