誰かがCookieベースの認証がどのように機能するかを段階的に説明してくれますか?私は、認証やCookieを含むことをしたことがありません。ブラウザは何をする必要がありますか?サーバーは何をする必要がありますか?どんな順番で?物事を安全に保つにはどうすればよいですか?
私はさまざまな種類の認証とCookieについて読んでいますが、2つを一緒に使用する方法の基本的な説明が欲しいのですが、それらはしばしば一緒に使用されることだけを読みましたが、方法の説明が見つかりませんでした。
誰かがCookieベースの認証がどのように機能するかを段階的に説明してくれますか?私は、認証やCookieを含むことをしたことがありません。ブラウザは何をする必要がありますか?サーバーは何をする必要がありますか?どんな順番で?物事を安全に保つにはどうすればよいですか?
私はさまざまな種類の認証とCookieについて読んでいますが、2つを一緒に使用する方法の基本的な説明が欲しいのですが、それらはしばしば一緒に使用されることだけを読みましたが、方法の説明が見つかりませんでした。
回答:
Cookieは、基本的には辞書内の単なるアイテムです。各アイテムにはキーと値があります。認証の場合、キーは「username」のようなもので、値はユーザー名になります。Webサイトへのリクエストを行うたびに、ブラウザはリクエストにCookieを含め、ホストサーバーはCookieをチェックします。したがって、認証はそのように自動的に行うことができます。
クッキーを設定するには、リクエストの後でサーバーが送り返す応答にクッキーを追加する必要があります。その後、ブラウザは応答を受信するとCookieを追加します。
有効期限や暗号化など、Cookieサーバー側に設定できるさまざまなオプションがあります。暗号化されたCookieは、しばしば署名付きCookieと呼ばれます。基本的にサーバーはディクショナリアイテムのキーと値を暗号化するため、サーバーだけが情報を利用できます。したがって、Cookieは安全です。
ブラウザは、サーバーによって設定されたCookieを保存します。ブラウザがそのサーバーに対して行うすべてのリクエストのHTTPヘッダーに、Cookieが追加されます。Cookieを設定するドメインのCookieのみを追加します。Example.comは、Cookieを設定し、ブラウザがHTTPヘッダーにオプションを追加して、Cookieをsub.example.comなどのサブドメインに送信することもできます。ブラウザがCookieを別のドメインに送信することは受け入れられません。
これは何年も遅れていると思いますが、Conorの答えを拡張して、もう少し議論に追加できると思いました。
誰かがCookieベースの認証がどのように機能するかを段階的に説明してくれますか?私は、認証やCookieを含むことをしたことがありません。ブラウザは何をする必要がありますか?サーバーは何をする必要がありますか?どんな順番で?物事を安全に保つにはどうすればよいですか?
ステップ1:クライアント>サインアップ
何よりもまず、ユーザーはサインアップする必要があります。クライアントは、自分のユーザー名とパスワードを含むHTTPリクエストをサーバーに投稿します。
ステップ2:サーバー>サインアップの処理
サーバーはこのリクエストを受信し、ユーザー名とパスワードをデータベースに保存する前にパスワードをハッシュします。これにより、誰かがデータベースにアクセスした場合、ユーザーの実際のパスワードは表示されません。
ステップ3:クライアント>ユーザーログイン
これで、ユーザーがログインします。彼/彼女はユーザー名/パスワードを提供し、これは再びHTTPリクエストとしてサーバーにポストされます。
ステップ4:サーバー>ログインの検証
サーバーはデータベースでユーザー名を検索し、提供されたログインパスワードをハッシュして、データベースで以前にハッシュされたパスワードと比較します。チェックアウトしない場合は、401ステータスコードを送信してリクエストを終了することにより、アクセスを拒否する場合があります。
ステップ5:サーバー>アクセストークンの生成
すべてが確認できたら、ユーザーのセッションを一意に識別するアクセストークンを作成します。引き続きサーバー内で、アクセストークンを使用して次の2つのことを行います。
今後、クライアントとサーバーの間で行われるすべての要求(および応答)にCookieが添付されます。
ステップ6:クライアント>ページ要求を行う
クライアント側に戻って、ログインしました。クライアントが認証を必要とする(つまり、ログインする必要がある)ページをリクエストするたびに、サーバーはCookieからアクセストークンを取得し、それをチェックします。そのユーザーに関連付けられたデータベース内。チェックアウトすると、アクセスが許可されます。
これで始められるはずです。ログアウト時に必ずCookieをクリアしてください!
Cookieベースの認証
Cookieベースの認証は、次の4つのステップで正常に機能します。
ブラウザは後続の各リクエストでこのセッションIDを送信し、セッションIDはデータベースに対して検証されます。このセッションIDに基づいて、Webサイトはどのクライアントに属するセッションを識別し、アクセスをリクエストに与えます。
ユーザーがアプリからログアウトすると、セッションはクライアント側とサーバー側の両方で破棄されます。