それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

phpで別アプリへのセッション受け渡し

php から別のアプリへセッションを受け渡したい

認証済みのセッションキーを、別のアプリへ受け渡ししたい。今回は mp4 と vlc でテストした。

渡す時

<?php
$url = 'http://example.com/sample.mp4';
$uri = "${uri}&PHPSESSID=".session_id();
$url = 'vlc-x-callback://x-callback-url/stream?url=$url'
header("Location: {$uri}");

受け取る時

ini_set("session.use_trans_sid",true;)
session_start();

フレームワークのサポートも、GET引数のチェックも何も要らない。便利。

引数の名前

デフォルトは "PHPSESSID" なので、ソレを入れても良い。 厳密にやるなら session_name()を使う。

$uri = "${uri}&".session_name()."=".session_id();
$uri = "${uri}&sid=".session_id();

サンプル

<?php

// これだけ
ini_set("session.use_trans_sid",true);
ini_set('session.use_only_cookies', 'off');
session_start();

if ( !empty($_SESSION['is_login']) && $_SESSION['is_login'] ) {
  echo "OK";
  http_response_code(200);
  return ;
}else{
  echo "OK";
  http_response_code(401);
  return ;
}

参考資料

http://php.net/manual/en/session.idpassing.php

セッション

ハンマーセッション!(7) (週刊少年マガジンコミックス)

ハンマーセッション!(7) (週刊少年マガジンコミックス)