cfmgrv4/app/Libraries/MySocket/GoogleSocket.php
2024-10-07 23:14:31 +09:00

41 lines
1.2 KiB
PHP

<?php
namespace App\Libraries\MySocket;
use Google\Client;
class GoogleSocket extends Client
{
private $_session = null;
private $_access_code = "";
public function __construct(string $access_code)
{
$this->_access_code = $access_code;
parent::__construct();
$this->_session = \Config\Services::session();
$this->setClientId(getenv("socket.google.client.id"));
$this->setClientSecret(getenv("socket.google.client.key"));
$this->setRedirectUri(base_url() . getenv("socket.google.client.callback_url"));
$this->addScope('email');
$this->addScope('profile');
}
public function setMyToken(): void
{
//2.토큰정보 가져오기
$tokenInfo = $this->fetchAccessTokenWithAuthCode($this->_access_code);
if (isset($tokenInfo['error'])) {
throw new \Exception($tokenInfo['error']);
}
$token = $tokenInfo[getenv("socket.google.client.token_name")];
//3. Google Service에 접근하기위해 Access Token을 설정
$this->setAccessToken($token);
//4. Google에 로그인이 했으므로 세션에 Token값 설정
$this->_session->set(getenv("socket.google.client.token_name"), $token);
}
public function getMyToken(): ?string
{
return $this->_session->get(getenv("socket.google.client.token_name"));
}
}