匿名ユーザーが外部Webソケット接続を介してログインしているユーザーとチャットできるチャットモジュールを書いています。
匿名ユーザーを一意に識別し、それらを異なる接続に割り当て、接続のステータスを追跡するためのIDが必要です。
匿名ユーザーの一意のユーザーIDまたはセッションIDを(安全に)取得するにはどうすればよいですか?
PHPの session_id()
を探しています:
session_id()は、現在のセッションのセッションIDを取得または設定するために使用されます。
Drupalは数バージョン前に匿名セッションの追跡を停止しました。 Drupalを騙してもう一度やりたい場合は、カスタムhook_init()
実装を使用してモジュールを作成する必要があります。
/**
* Implements hook_init().
*
* <soapbox>The Drupal team decided to remove support for anonymous user sessions
* starting in Drupal 7.37. This fundamentally breaks several things related to Drupal.
* I cannot find any documentation of this change in any changeme dating back to 7.33.
* The answer comes to us from:</soapbox>
*
* https://dgtlmoon.com/drupal_7_anonymous_sessions
*/
function mymodule_init() {
drupal_session_start();
$_SESSION['nosave'] = TRUE;
}