pyramid_subscribers_cookiexfer egy Python modul, amely lehetővé teszi át a sütiket a kérést a választ egy http kivétel. Lehet, hogy kell ezt átirányítások alosztályain httpexceptions.
Áttekintés
Egy átlagos felhasználó flow lehet ennek:
* Felhasználó elküldi az űrlapot / számla / login
* Backend hitelesíti, és különböző sütiket
* Backend átirányítja / fiók / home
Ha csak fenn adatokat piramis ülés ebben nem szükséges - a piramis session cookie beállítása előtt megtörténik, így az adatok továbbra is fennáll a redirect.
Ez akkor hasznos, ha beállítás kiegészítő információk segítségével böngésző cookie-kat, mint például a cache-eli a felhasználó adatait a kliens.
Szinte minden böngésző tiszteletben tartja a setcookie fejléc átirányítás - csak Safari ismert, hogy figyelmen kívül hagyja ezt. & Nbsp; Sok fejlesztő tárolt cookie-kat a munkamenet adatok megjelenjenek a jövőbeni látogatások, ez a csomag automatizálja ezt.
Két módja van, hogy továbbra is fennállnak információk
- Add_headers - transzferek cookie-fejléceket a kérést a választ
- Session_save - elmenti a cookie-kat meg akarna állítani a session, vándorol őket a választ a következő oldalmegtekintésként
Emellett a csomag lehetőséget ad arra, hogy "egyedülálló" kezeli a cookie-kat, hogy ne duplázik. & Nbsp; most ez a viselkedés ajánlott.
A csomag úgy van beállítva, a néhány változót a .ini fájlokat, aztán lehetővé tette egy olyan import és hívja a "alaphelyzetbe" a .ini
A belső mechanikája nagyon egyszerű:
& Nbsp; & nbsp; & nbsp; config.add_subscriber (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; new_request,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Pyramid.events.NewRequest)
& Nbsp; & nbsp; & nbsp; config.add_subscriber (
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; new_response,
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Pyramid.events.NewResponse)
& Nbsp; & nbsp; & nbsp;
Annak érdekében, hogy segítse a hibakeresés és csökkenteni a feldolgozás:
- Initialize_subscribers () csak telepíteni egy NewResponse hallgatóval, ha sessioning fogják használni
- A konfigurálható regex könnyen eltüntethető utak a modul (beleértve a hibakeresés nyilatkozatok)
Fontos tudnivalók:
- Ez a csomag tiszteletben fogja tartani a fejléceket, amelyek felvetették az httpexception
- Mert milyen piramis belső akkor működik, ha "visszatérés" az átirányítás - Nem emelést is -, ha azt szeretnénk, sütik át a request.response. & Nbsp; Ha emelést egy átirányítás, csak a fejlécek felhasználja a redirect tárolható a munkamenet (léteznek az új válasz objektumot, és nem kell át)
Ezekben a helyzetekben fog működni:
Néhány esetben példák
& Nbsp; & nbsp; & nbsp; vissza HTTPFound (location = '/ new / hely)
& Nbsp; & nbsp; & nbsp; - Minden cookie-t a request.response.set_cookie kerül át
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; vissza HTTPFound (location = '/ new / hely ", fejlécek = dict_of_headers)
& Nbsp; & nbsp; & nbsp; - A fejlécek a dict_of_headers már az új választ, és fennállhat a munkamenet
& Nbsp; & nbsp; & nbsp; - Minden cookie-t a request.response.set_cookie kerül át
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; emelje HTTPFound (location = '/ new / hely)
& Nbsp; & nbsp; & nbsp; - NO által létrehozott sütiket request.response.set_cookie kerül át
& Nbsp; & nbsp; & nbsp; emelje HTTPFound (location = '/ new / hely ", fejlécek = dict_of_headers)
& Nbsp; & nbsp; & nbsp; - A fejlécek a dict_of_headers már az új választ, és fennállhat a munkamenet
& Nbsp; & nbsp; & nbsp; - NO által létrehozott sütiket request.response.set_cookie kerül át
Beállítások
environment.ini
& Nbsp; & nbsp; & nbsp; cookie_xfer.redirect_add_headers = True
& Nbsp; & nbsp; & nbsp; cookie_xfer.redirect_add_headers__unique = True
& Nbsp; & nbsp; & nbsp; cookie_xfer.redirect_session_save = False
& Nbsp; & nbsp; & nbsp; cookie_xfer.redirect_session_save__unique = False
& Nbsp; & nbsp; & nbsp; cookie_xfer.re_excludes = "^ / (css | img | js | deformálódnak | _debug_toolbar)"
& Nbsp; & nbsp; & nbsp;
app / __ init__.py
& Nbsp; & nbsp; & nbsp; import pyramid_subscribers_cookiexfer
& Nbsp; & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; def main (global_config, ** beállítások):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; pyramid_subscribers_cookiexfer.initialize (config, beállítások)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
követelmények :
- Python
- piramis
Hozzászólás nem található