#10:セッションとパスワードを理解する
ここでは、ログイン状態を保持するセッションとユーザーを認証するパスワードについて学習します。Djangoでは、セッション管理機能も簡単に利用できます。
ログインしてから、ログアウトするまでの一連のアクセスを「セッション」と呼びます。
Webサイトへの基本的なアクセスでは、アプリケーション側でそれぞれのアクセスは独立しています。そのために、同じ人が同じサイトに複数回アクセスしても、それぞれのアクセスを区別できません。これでは、アクセスするたびにログインし直す必要があります。
そこで、セッションという仕組みを利用します。セッションは、ログインすると開始して、そのアクセスを区別する「セッション情報」を記録します。そして、ログアウトしたり、ブラウザを閉じて一定時間が経ったりすると終了します。この「セッション情報」おかげで、セッションが有効な間、Webアプリケーションに同じ人がアクセスしていると判断できるようになります。
Google Chromeの場合
1.「設定」メニューを呼び出す
2.「詳細設定」-「コンテンツの設定」-「Coookies」-「すべてのクッキーとサイトデータ」
3.Webアプリケーションのドメイン名を検索する
Djangoでは、パスワードを「ハッシュ」という暗号に変換して保存しています。
一見適当な文字列に見えますが、
- 「同じ文字列からは常に同じハッシュが作成される」
- 「簡単に元の文字列に戻すことができない」
という特徴があります。
このハッシュ同士を比較することで、パスワードの中身を見られることなく正しいパスワードかどうかが比較できます。
また、文字列をハッシュに変換することを「ハッシュ化」といい、ハッシュ化の手法としてSHA-256やMD5などがよく知られています。
- [セッション (session)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典]
http://wa3.i-3-i.info/word1791.html
- Djangoフレームワークのユーザーモデルと認証
https://www.slideshare.net/tokibito/django-79549364
- セッションの使いかた | Django documentation | Django
https://docs.djangoproject.com/ja/2.1/topics/http/sessions/
- Djangoにおけるパスワード管理 | Django documentation | Django
https://docs.djangoproject.com/ja/2.1/topics/auth/passwords/