(機械翻訳) pyramid.session

signed_serialize(data, secret)[ソース]

pickleable構造体( `` data``)をシリアライズし、 `` secret``(文字列でなければなりません)を使って署名します。署名を最初の40バイトとして含む直列化を返します。 `` signed_deserialize``メソッドはそのような値を逆直列化します。

この関数は、署名付きのCookieを作成するのに便利です。例えば:

cookieval = signed_serialize({'a':1}, 'secret')
response.set_cookie('signed_cookie', cookieval)
signed_deserialize(serialized, secret, hmac=<module 'hmac' from '/usr/lib/python3.6/hmac.py'>)[ソース]

`` signed_serialize``から返された値をデシリアライズします。何らかの理由で値を逆シリアル化できない場合、a:exc: `ValueError`例外が送出されます。

この関数は `` signed_serialize``で作成された署名されたクッキー値をデシリアライズするのに便利です。例えば:

cookieval = request.cookies['signed_cookie']
data = signed_deserialize(cookieval, 'secret')
SignedCookieSessionFactory(secret, cookie_name='session', max_age=None, path='/', domain=None, secure=False, httponly=False, set_on_exception=True, timeout=1200, reissue_time=0, hashalg='sha512', salt='pyramid.session.', serializer=None)[ソース]

バージョン 1.5 で追加.

署名付きのCookieベースのセッションを提供するa:term: session factory`を設定します。この関数の戻り値は、:term: `session factory`です。これは:class: pyramid.config.Configurator`コンストラクタの `` session_factory``引数として提供されるか、 `` session_factory``として使われます。 :meth: pyramid.config.Configurator.set_session_factory`メソッドの引数です。

この関数によって返されるセッションファクトリは、ペイロードが単一のクッキーに収まる必要があるため、4000バイト未満のデータを格納することに限定されたセッションを作成します。

パラメーター:

「秘密」
クッキーに署名するために使用される文字列。秘密は、少なくとも選択されたハッシュアルゴリズムのブロックサイズと同じ長さでなければなりません。 `` sha512``の場合、これは512ビット(64文字)の秘密を意味します。さまざまなサブシステムのためにPyramidに提供される秘密値のセット内で一意でなければなりません(ref: `admonishment_against_secret_sharing`参照)。
「ハハハル」
署名に使用するHMACダイジェストアルゴリズム。アルゴリズムは:mod: hashlib`ライブラリでサポートされていなければなりません。デフォルト: ` &#39;sha512&#39;``。
``塩 ``
共有秘密の異なる使用の間の衝突を避けるための名前空間。アプリケーションのさまざまな部分に対して秘密を再利用することは強く推奨されません(ref: admonishment_against_secret_sharing`参照)。デフォルト: ` &#39;pyramid.session.&#39;``。
`` cookie_name``
セッションに使用されるCookieの名前。デフォルト: `` &#39;session&#39;``。
`` max_age``
セッションに使用されたクッキーの最大経過時間(秒単位)。デフォルト: `` None``(ブラウザスコープ)。
``パス ``
セッションCookieに使用されるパス。デフォルト: `` / &#39;``。
「ドメイン」
セッションCookieに使用されるドメイン。デフォルト: `` None``(ドメインなし)。
``安全 ``
セッションクッキーの &#39;安全な&#39;フラグ。デフォルト: `` False``。
`` httponly``
セッションCookieの &#39;HttpOnly&#39;フラグを設定して、JavascriptからCookieを非表示にします。デフォルト: `` False``。
``タイムアウト ``
セッションがタイムアウトするまでの、何秒もの非アクティブ時間。 `` None``の場合、クッキーは期限切れになりません。この生存期間は、クッキー内の* value *にのみ適用されます。つまり、 `` max_age``が低いためにクッキーが失効した場合、この設定は効果がありません。デフォルト: `` 1200``。
`` reissue_time``

セッションにアクセスした結果、クッキーが自動的に再発行されるまでの秒数。継続時間は、最後のセッションCookieが発行されてからの秒数と &#39;now&#39;として測定されます。この値が `` 0``の場合、セッションにアクセスするすべてのリクエストで新しいクッキーが再発行されます。 `` None``の場合、クッキーの存続期間は決して延長されません。

経験則の中で、非アクティブに基づいて自動期限切れのクッキーが必要な場合: `` timeout``値を1200(20分)に設定し、 `` reissue_time``値をおそらく `` timeout`の10分の1に設定してください`値(120分または2分)。チケットが再発行されないので、 `` reissue_time``値よりも `` timeout``値を低く設定するのは無意味です。しかしながら、そのような構成は明白に防止されていない。

デフォルト: `` 0``。

`` set_on_exception``
`` True``の場合、ビューのレンダリング中に例外が発生した場合でもセッションクッキーを設定します。デフォルト: `` True``です。
「シリアライザ」
オブジェクトには ``読み込み ````ダンプ ``の2つのメソッドがあります。 `` loads``メソッドはバイトを受け取り、Pythonオブジェクトを返すべきです。 `` dumps``メソッドはPythonオブジェクトを受け入れ、バイトを返すべきです。不正な入力に対しては、 &quot;ValueError&quot;を生成する必要があります。シリアライザが渡されない場合、:class: `pyramid.session.PickleSerializer`シリアライザが使用されます。
UnencryptedCookieSessionFactoryConfig(secret, timeout=1200, cookie_name='session', cookie_max_age=None, cookie_path='/', cookie_domain=None, cookie_secure=False, cookie_httponly=False, cookie_on_exception=True, signed_serialize=<function signed_serialize>, signed_deserialize=<function signed_deserialize>)[ソース]

バージョン 1.5 で撤廃: 代わりに:func: pyramid.session.SignedCookieSessionFactory`を代わりに使用してください。警告: ` SignedCookieSessionFactory``を使って生成されたクッキーは、 `` UnencryptedCookieSessionFactory``を使って生成されたクッキーと互換性がありませんので、既存のユーザセッションデータは、それに切り替えると破棄されます。

暗号化されていない(しかし署名された)クッキーベースのセッションを提供するa:term: session factory`を設定します。この関数の戻り値は、:term: `session factory`です。これは:class: pyramid.config.Configurator`コンストラクタの `` session_factory``引数として提供されるか、 `` session_factory``として使われます。 :meth: pyramid.config.Configurator.set_session_factory`メソッドの引数です。

この関数によって返されるセッションファクトリは、ペイロードが単一のクッキーに収まる必要があるため、4000バイト未満のデータを格納することに限定されたセッションを作成します。

パラメーター:

「秘密」
クッキーに署名するために使用される文字列。
``タイムアウト ``
セッションがタイムアウトするまでの、何秒もの非アクティブ時間。
`` cookie_name``
セッションに使用されるCookieの名前。
`` cookie_max_age``
セッションに使用されたクッキーの最大経過時間(秒単位)。デフォルト: `` None``(ブラウザスコープ)。
`` cookie_path``
セッションCookieに使用されるパス。
`` cookie_domain``
セッションCookieに使用されるドメイン。デフォルト: `` None``(ドメインなし)。
`` cookie_secure``
セッションクッキーの &#39;安全な&#39;フラグ。
`` cookie_httponly``
セッションCookieの &#39;httpOnly&#39;フラグ。
`` cookie_on_exception``
`` True``の場合、ビューのレンダリング中に例外が発生した場合でもセッションクッキーを設定します。
`` signed_serialize``
多かれ少なかれ任意のPythonデータ構造とシークレットを取り、符号付きシリアル化をバイト単位で返します。デフォルト: `` signed_serialize``(pickleを使用)。
`` signed_deserialize``
署名付きでシリアライズされたデータ構造体(バイト単位)とシークレットを取得し、署名が有効な場合は元のデータ構造体を返す呼び出し可能オブジェクト。デフォルト: `` signed_deserialize``(pickleを使用)。
BaseCookieSessionFactory(serializer, cookie_name='session', max_age=None, path='/', domain=None, secure=False, httponly=False, timeout=1200, reissue_time=0, set_on_exception=True)[ソース]

バージョン 1.5 で追加.

cookieベースのセッションを提供するa:term: session factory`を設定します。この関数の戻り値は、:term: `session factory`です。これは:class: pyramid.config.Configurator`コンストラクタの `` session_factory``引数として提供されるか、 `` session_factory``として使われます。 :meth: pyramid.config.Configurator.set_session_factory`メソッドの引数です。

この関数によって返されるセッションファクトリは、ペイロードが単一のクッキーに収まる必要があるため、4000バイト未満のデータを格納することに限定されたセッションを作成します。

パラメーター:

「シリアライザ」
オブジェクトには ``読み込み ````ダンプ ``の2つのメソッドがあります。 `` loads``メソッドはバイトを受け取り、Pythonオブジェクトを返すべきです。 `` dumps``メソッドはPythonオブジェクトを受け入れ、バイトを返すべきです。不正な入力に対しては、 &quot;ValueError&quot;を生成する必要があります。
`` cookie_name``
セッションに使用されるCookieの名前。デフォルト: `` &#39;session&#39;``。
`` max_age``
セッションに使用されたクッキーの最大経過時間(秒単位)。デフォルト: `` None``(ブラウザスコープ)。
``パス ``
セッションCookieに使用されるパス。デフォルト: `` / &#39;``。
「ドメイン」
セッションCookieに使用されるドメイン。デフォルト: `` None``(ドメインなし)。
``安全 ``
セッションクッキーの &#39;安全な&#39;フラグ。デフォルト: `` False``。
`` httponly``
セッションCookieの &#39;HttpOnly&#39;フラグを設定して、JavascriptからCookieを非表示にします。デフォルト: `` False``。
``タイムアウト ``
セッションがタイムアウトするまでの、何秒もの非アクティブ時間。 `` None``の場合、クッキーは期限切れになりません。この生存期間は、クッキー内の* value *にのみ適用されます。つまり、 `` max_age``が低いためにクッキーが失効した場合、この設定は効果がありません。デフォルト: `` 1200``。
`` reissue_time``

クッキーがセッションにアクセスする要求の結果として自動的に再発行されるまでに経過する必要のある秒数。継続時間は、最後のセッションCookieが発行されてからの秒数と &#39;now&#39;として測定されます。この値が `` 0``の場合、セッションにアクセスするすべてのリクエストで新しいクッキーが再発行されます。 `` None``の場合、クッキーの存続期間は決して延長されません。

経験則の中で、非アクティブに基づいて自動期限切れのクッキーが必要な場合: `` timeout``値を1200(20分)に設定し、 `` reissue_time``値をおそらく `` timeout`の10分の1に設定してください`値(120分または2分)。チケットが再発行されないので、 `` reissue_time``値よりも `` timeout``値を低く設定するのは無意味です。しかしながら、そのような構成は明白に防止されていない。

デフォルト: `` 0``。

`` set_on_exception``
`` True``の場合、ビューのレンダリング中に例外が発生した場合でもセッションクッキーを設定します。デフォルト: `` True``です。
class PickleSerializer(protocol=4)[ソース]

pickleプロトコルを使用してPythonデータをバイトにダンプするシリアライザ。

これはPyramidで使用されるデフォルトのシリアライザです。

使用するpickleのバージョンを制御するために `` protocol``を指定することができます。デフォルトは:attr: `pickle.HIGHEST_PROTOCOL`です。