-1

私が使用しているアプリケーションは、3 種類のログインを受け入れます。クライアントが特定の IP アドレスまたは POST 要求から接続する場合、通常のブラウザー レンダリング フォームから、または JSON 読み取り API エンドポイントに向けて自動的に接続します。

3 つのオプションはすべて、ユーザーをログイン済みとして登録し、セッションを生成するために同じ関数を呼び出すことに要約されます。

私が判断できる限り、コード パスは同じですが、アプリケーション ロジックがセッション ID を生成し、それがレスポンスボディ。

セッション認証がどのように機能するかをこのレベルの詳細まで掘り下げる必要はなかったので、理解できないことに気付きました。「Set-Cookie」ヘッダーどこから来る必要があります。アプリケーション ロジックは常にヘッダーを手動で作成する必要がありますか? session_start()が呼び出されると、PHP は自動的にそれを行いますか? Apacheはヘッダーの他の部分に基づいてそれを行いますか?

grep -ri "set.cookie" *私が作業しているコードベースで何かを見つけることができなかったため、1を除外しました。

4

1 に答える 1

1

session_startセッション キャッシュ リミッターセッション Cookieを送信します(または、PHPSESSID で $_GET キーを設定します)。

この関数は、Set-Cookie パラメータの送信元です。Apache は、ページを送り返すときにそれをブラウザに返します。

ただし、Cookie の保存は実際にはブラウザ次第であることを覚えておく必要があります。おおむね問題なく設定されますが、Internet Explorer のセキュリティ設定やユーザーが Cookie を完全に拒否しているなど、特定の条件によってこれが発生しなくなります。

参考文献:

http://www.php.net/manual/en/function.session-start.php

http://www.php.net/manual/en/function.session-get-cookie-params.php

http://www.php.net/manual/en/function.session-status.php

于 2012-11-16T10:24:11.007 に答える