WordPressがユーザーのログイン場所を判断する方法を理解しようとしていますか。私はそれがちょうどクッキーを使って行われたことを読みました。しかしWordPress 4では、新たに追加されたwp_session_tokens
があります。コーデックスを読んでインターネットで検索しようとしましたが、あまり役に立つ情報はありません。
質問:
wp_session_tokens
の典型的な使い方は何ですか?
それらを使ってユーザーをログイン/ログアウトすることはできますか?それとも、ユーザログインを管理するために単にset_current_user
とset_auth_cookie
関数に頼るべきですか?
wp_session_tokens
に不利な点はありますか?
あなたがこれらのセッショントークンが何をするかを説明するためにいくらかの時間を空けることができるなら本当に感謝するでしょう。
通常の クッキー は、一定期間ログインを維持するためにWordPressで使用されているように、ユーザーがログインしているかどうかを確認する方法です。コンピュータを閉じても、もう一度電源を入れるとそこに表示されます。
セッショントークン は別のものです。それらは複数のページリクエスト間で情報を転送するためのものです。典型的な例は、オンラインショップのページを閲覧している間に表示されるべきショッピングカートの内容です。あなたはクエリ引数(www.example.com\?cart="book:Moby_Dick_1799847h4"
のような)を使ってその情報を渡すことができますが、それは毎回たくさんの情報を送ることを含みます。代わりに、トークンが渡され、サーバーは表示するカートの内容を認識します。
セッショントークンがクッキーとしてあなたのパソコンに保存され、サーバーがそのクッキーに関連するカートの内容を保存しない限り、セッションはあなたがブラウザを閉じるとすぐに消えます。そのため、セッショントークンはCookieより永続的ではありません。
セッショントークンを使用して、他のユーザーがまだログインしているかどうかを確認できます。これにより、ユーザーはサイトを開くたびにログインする必要があります。その場合は、通常のログイン手順も無効にする必要があります。
ユーザーを識別するためにセッショントークンを使用するとうまくいかない場合があります。たとえば、複数のサーバーに分散している大規模なサイトがある場合、1つのサーバーとの有効なセッションがあるかもしれませんが、ロードバランサーが別のサーバーにあなたを送ることにし、あなたが合法的にログインしているかどうかを決定するためにすべてのサーバーが同じデータベースを調べるので、クッキーのアプローチはこれに悩むことはないでしょう。
要約すると:あなたが本当にセキュリティ手順に熟練していない限り、WordPressがあなたに提供するものに固執してください。