• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/oauth.php
  • Класс: BitrixMailHelperOAuth
  • Вызов: OAuth::handleResponse
public function handleResponse($state)
{
	$this->storedUid = $state['uid'];

	if ($item = $this->fetchStoredToken())
	{
		$this->oauthEntity->setRefreshToken($item['REFRESH_TOKEN']);
	}

	if (!empty($_REQUEST['code']) && CSocServAuthManager::checkUniqueKey())
	{
		$this->getAccessToken($_REQUEST['code']);

		if ($userData = $this->getUserData(false))
		{
			$fields = array(
				'UID' => $this->getStoredUid(),
				'TOKEN' => $userData['__data']['access_token'],
				'REFRESH_TOKEN' => $userData['__data']['refresh_token'],
				'TOKEN_EXPIRES' => $userData['__data']['expires_in'],
			);

			if (empty($item))
			{
				MailInternalsOAuthTable::add($fields);
			}
			else
			{
				MailInternalsOAuthTable::update($item['ID'], $fields);
			}

			if(isset($userData['__data']['emailIsIntended']))
			{
				$userData['emailIsIntended'] = $userData['__data']['emailIsIntended'];
			}
			else
			{
				$userData['emailIsIntended'] = false;
			}

			unset($userData['__data']);

			?>