クッキーとセッションのプレゼンテーションでフラスコ

フラスコクッキーとセッションプレゼンテーション

入門

Webサイトでは、HTTPリクエストはステートレスです。換言すれば、第1の時間とサーバー接続とログインが成功した後も、サーバーへの2番目の要求は、まだどのユーザー現在の要求を知りません。クッキーは、ログインサーバーがブラウザに一部のデータ(クッキー)を返した後に初めて、この問題を解決するために表示され、ユーザが第2のリクエストを送信するときに、ローカルのブラウザに保存されている、それは自動的に最後に入れますリクエストクッキー記憶されたデータは自動的にサーバに搬送され、ブラウザによって運ばれるデータは、現在のユーザがどのであるかを決定することができるであろう。クッキー保存されたデータの限られた量は、異なるブラウザは異なるストレージサイズを持っていますが、一般的には4キロバイト以上。だから、唯一のデータのいくつかの小さな量を格納することができますクッキーを使用しています。

そして、セッションクッキーの役割が少し似て、それについてのユーザー情報を格納することです。差は、クッキーは、ローカルのブラウザに保存され、サーバーのセッションに保存されています。サーバー上に格納されたデータは簡単に盗まれない、より安全になります。しかし、サーバーにも、いくつかの欠点を持っているサーバーのリソースを消費することであるが、今のサーバは、これまでに開発された上に格納され、情報セッションの一部は十分すぎるほどです。

と一緒にクッキーとセッション

WEB開発はこれまでに、クッキーやセッション使用は、ストレージの2種類が一般的に存在し、今日の市場や企業内で、いくつかは非常にプログラムを成熟さがありました。

  • サーバに保存されている:ユーザーがログインした場合、クッキーがsession_idを格納することで、その後、具体的なデータは、サーバがクッキーにSESSION_IDが保存されます、セッションに格納され、次回は再び要求し、SESSION_IDを運ぶでしょうサーバーは、SESSION_IDに基づいてセッションライブラリデータにユーザーのセッションを取得します。ユーザーは、最終的に誰であるか知ることができるだけでなく、以前に保存された状態情報の一部になります。この専門用語は、サーバー側のセッションと呼ばれています。
  • クライアントに保存されている:セッションデータは暗号化され、その後、クッキーに保存されています。この専門用語は、クライアント側セッションと呼ばれています。フラスコは、本実施形態で使用されているが、他の形で置き換えられてもよいです。

セッションのフラスコ

暗号化された機密データの後に:セッション機構フラスコでありsession、そして次いでsessionに格納されたcookie後続の要求の開始、次いで上のブラウザから送信されたcookieリードsession、その後sessionリード機密データ最終的なユーザーを取得するためにデータを復号します。
このセッションのフラスコメカニズムのすべての情報は、クライアント(ブラウザ)に格納されているので、あなたは、サーバーのコストを節約することができます

コンフィギュレーション

コンフィギュレーション・ファイルconfig.pyでsecret_keyに参加します:

= SECRET_KEYのXXXXXXXXX     #の塩値としてランダムな文字列暗号化されたセッションの文字列

メインアプリの設定ファイルの参照:

フラスコインポートフラスコ、セッション
 インポート設定

アプリ =フラスコ(__name__ 
app.config.from_object(設定)
[「SECRET_KEYの」] App.configファイル「XXXXX」#構成を導入することなく、メインアプリケーションファイルに直接提供することができます=
コードの表示

オペレーティングセッション

操作辞書同じセッションの動作方法

フラスコインポートフラスコ、セッション
 インポートOS 

アプリ =フラスコ(__name__ 
[App.configファイルSECRET_KEYの = os.urandom](24)   は、24ビットのランダムな文字列が暗号化されて塩を設定します。

設定セッション 
app.route @(' / ' DEF SET():
    セッション[ ' ユーザ名' ] = ' Jyang '        #の辞書に同じ設定キー
    リターン ' 成功' 


#は、セッション読む 
(app.route @を/ GET "DEF GET():
    セッション[ ユーザ名 ]          #の方法、内容が存在しない場合は、異常報告されます 
    Session.get(ユーザ名をコンテンツが存在しない場合には、第二の方法を、返品なし。推奨される
    リターン Session.get(ユーザ名
    

セッションを削除 
app.route @(/削除/はDEF の削除():

    session.pop(ユーザ名辞書ポップメソッドは、指定された値にセッション削除 
    Session.clearの                    #を削除セッションのすべての値
    リターン ' 成功' 


の場合 __name__ == ' __main__ ' 
    app.run()
コードの表示

設定されたセッションの有効期限

  • あなたは、セッションの有効期限を指定しない場合は、ブラウザを閉じた後、デフォルトでは自動的に終了されます
  • 永久的な性質のセッションがTrueに設定し、その後、有効期限は31日です(session.permanent =真)
  • あなたはapp.configを設定PERMANENT_SESSION_LIFETIMEに有効期限を変更することができ、この値のデータ型はdatetime.timedelaタイプがあります。
"" " config.py " "" 
から日時のインポートはtimedelta
 インポートOS 

のSECRET_KEY = os.urandom(24)         24文字のランダムな文字列を生成 
PERMANENT_SESSION_LIFETIME =はtimedelta(日= 7)  セット日効果的なsession7を
コードの表示

 

 

 

おすすめ

転載: www.cnblogs.com/ls011218/p/11817267.html