1

セッション管理のバックエンドとしてビーカーを使用してピラミッド フレームワークを使用しており、署名付き Cookie 内に session_id を保存したいと考えています。session-id は実際の user_id に関連付けられており、関連付けのマッピングは redis などに保存されます。これを実現するために、以下の構成を使用できますか? ドキュメントは完全な実装を提供しておらず、安全でないセッション ファクトリを使用した例のみを示しています。

セッションの詳細に編集された私の構成ファイルは次のとおりです。

session.type = cookie
session.data_dir = %(here)s/data/sessions/data
session.lock_dir = %(here)s/data/sessions/lock
session.key = session_key
session.secret = as98&$Hh94
session.cookie_on_exception = true

これが私のもの__init__.pyです:

config = Configurator(settings=settings)
config.include('pyramid_jinja2')
config.include('pyramid_beaker')
config.include('.models')
config.include('.routes')
config.include('polatick.models')
config.scan()
return config.make_wsgi_app()

これを適切に行うために、ピラミッドの関数を忘れて覚えているだけですか?

私はプロセスが次のような単純なものに沿って進むことを考えていました:

if user_authenticates():
   session_id = create_session_id()
   redis.put_entry(session_id, user_id)
   request.session['session_id'] = session_id
   headers = remember(request, login)
   return HTTPFound('/', headers=headers)

私はこのドキュメントに従っています:
http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/pylons/sessions.html

4

1 に答える 1

1

Pyramid Community Cookbook は公式のドキュメントではありません。ユーザー投稿のレシピ集です。特にこれは、ソリューションを Pyramid に移行している Web フレームワーク Pylons のユーザーを対象としています。

代わりに、 Sessionsの公式ドキュメントを参照してください。これにより、すぐに使用できるセッション実装が提供され、独自のセッション ファクトリを実装できます。

それに続いて、wiki チュートリアルに認証 (および後で承認) を伴うセッションの実装があります。

pyramid_nacl_sessionは、PyNaCl を使用して Cookie 状態の対称暗号化を生成する、暗号化の pickle ベースの Cookie シリアライザーを定義します。

Redis をバックエンドとして使用して、Pyramid の ISession インターフェースを実装する Pyramid アドオンであるpyramid_redis_sessionsもあります。

最後に、セッション、承認、または認証を提供するパッケージのリストについては、Try Pyramid - Extending Pyramidを参照してください。

于 2016-09-05T08:12:53.133 に答える