6

フラスコログイン拡張機能を使用してFlaskアプリをセットアップしています。フラスコログインのドキュメントでは、ユーザーIDとアプリシークレットを使用してセッショントークンを作成するだけではない代替トークンジェネレーターを設定することを推奨しています(これはデフォルトの方法です)。ただし、これを行う方法について明確な推奨事項は提供されていません。

したがって、については、ユーザーの電子メールとパスワードをパラメーターとしてUser.get_auth_token()使用する関数を使用しています(したがって、これらのパラメーターのハッシュとアプリの秘密を取得します)。make_secure_token

次に、token_loaderコールバックを使用してトークンからユーザーを取得できるようにする必要があります。フラスコログインでトークンを生成するためのデフォルトの方法は、生のユーザーIDとユーザーID+アプリシークレットのハッシュの両方を含めることです。これにより、トークンからユーザーを見つけるのが非常に簡単になります。IDを取得してユーザーを検索するだけです。

しかし、セッショントークンでユーザーIDを公開する必要がありますか?そうでない場合、ルックアップを可能にするために、セッショントークンをデータベースまたはユーザーIDとともに他の場所に保存する必要がありますか?

token_loaderつまり、安全なトークンと対応するコールバックを作成するためのベストプラクティスを知っている人はいますか?

4

1 に答える 1

4

Flask メーリング リストで、Matt Wrightは、flask-security 拡張機能での彼の実装を教えてくれました。彼はitsdangerousURLSafeTimedSerializer()を使用して、ユーザー ID とパスワード ハッシュで構成されるシリアル化された ( 経由の) リストをエンコードする署名付きトークンを作成します。その後、トークンをデコードしてユーザー ID を取得できます。

于 2012-09-26T16:35:17.560 に答える