1 개요[ | ]
- Sharing Cookies between Applications
- 라라벨 쿠키 공유
PHP
Copy
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[ | ]
Bash
Copy
composer require illuminate/encryption
PHP
Copy
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[ | ]
Bash
Copy
composer require illuminate/encryption
composer require vlucas/phpdotenv
composer require predis/predis
PHP
Copy
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 참고[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.