라라벨 쿠키 공유

1 개요[ | ]

Sharing Cookies between Applications
라라벨 쿠키 공유
require '../../laravel/bootstrap/autoload.php';
$app = require_once '../../laravel/bootstrap/app.php';
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle( $request = Illuminate\Http\Request::capture() );
$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();
print_r( $app['auth']->user() );

2 minimal[ | ]

composer require illuminate/encryption
require __DIR__.'/vendor/autoload.php';
use Illuminate\Encryption\Encrypter;
$key = 'b824dCuplohFfjE6YmB5bPhfzSMwyADz';
$cipher = 'AES-256-CBC';
$encrypter = new Encrypter($key, $cipher);
$id = $encrypter->decrypt($_COOKIE['laravel_session']);

3 env + redis[ | ]

composer require illuminate/encryption
composer require vlucas/phpdotenv
composer require predis/predis
require __DIR__.'/../../../laravel/vendor/autoload.php';
function get_laravel_user_id() {
    if( !isset( $_COOKIE['laravel_session'] ) ) return false;
    $dotenv = new Dotenv\Dotenv(__DIR__.'/../../../laravel');
    $dotenv->load();
    $encrypter = new Illuminate\Encryption\Encrypter( getenv('APP_KEY'), 'AES-256-CBC' );
    $session_key = $encrypter->decrypt($_COOKIE['laravel_session']);
    $redis = new Predis\Client([
        'host'   => getenv('REDIS_HOST'),
        'port'   => getenv('REDIS_PORT'),
    ]);
    $session_value = unserialize(unserialize( $redis->get( 'laravel:'.$session_key ) ));
    $user_id_key = 'login_web_'.sha1(Illuminate\Auth\SessionGuard::class);
    if( !isset($session_value[$user_id_key]) ) return false;
    return $session_value[$user_id_key];
}
$user_id = get_laravel_user_id();

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}