yukata

日々出会ったIT技術関連の所感やら紹介やら

PUSHERの利用に認証を含める

前回の記事の内容に、認証処理を含めてみます。

以下のサイトを参考にしました。認証シーケンスや、使い方が書かれています。
http://pusher.com/docs/authenticating_users

細かい部分を省いてポイントだけシンプルに書きます。

websocketを利用するブラウザへ送信するJavascriptを修正

・Pusher.channel_auth_endpointを追記
・チャネル名のプレフィックスに「private-」を追加

・・・
  Pusher.channel_auth_endpoint = 'pusher_auth'; //←認証ページへのパスを書く。
  var pusher = new Pusher('********'); // ←API取得時に控えたAPI keyを書く。
  var channel = pusher.subscribe('private-channel');
・・・


認証用のページを作成

  if (認証OKの場合) {
    $pusher = new Pusher($key, $secret, $app_id);
    echo $pusher->socket_auth($_POST['channel_name'], $_POST['socket_id']);
  } else {
    header('', true, 403);
    echo "Forbidden";
  }


これだけで、認証が成功した場合はwebsocketのコネクションが生成され、pushリクエストを送ったときに前回のようにポップアップが表示されます。

認証に失敗した場合は接続されません。