<?php
/**
- * @file src/Module/Magic.php
+ * @copyright Copyright (C) 2010-2021, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
*/
+
namespace Friendica\Module;
use Friendica\BaseModule;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Util\HTTPSignature;
-use Friendica\Util\Network;
use Friendica\Util\Strings;
/**
{
$a = DI::app();
$ret = ['success' => false, 'url' => '', 'message' => ''];
- Logger::log('magic mdule: invoked', Logger::DEBUG);
+ Logger::info('magic mdule: invoked');
- Logger::log('args: ' . print_r($_REQUEST, true), Logger::DATA);
+ Logger::debug('args', ['request' => $_REQUEST]);
$addr = $_REQUEST['addr'] ?? '';
$dest = $_REQUEST['dest'] ?? '';
$contact = DBA::selectFirst('contact', ['id', 'nurl', 'url'], ['id' => $cid]);
// Redirect if the contact is already authenticated on this site.
- if (!empty($a->contact) && array_key_exists('id', $a->contact) && strpos($contact['nurl'], Strings::normaliseLink(DI::app()->getBaseURL())) !== false) {
+ if (!empty($a->contact) && array_key_exists('id', $a->contact) && strpos($contact['nurl'], Strings::normaliseLink(DI::baseUrl()->get())) !== false) {
if ($test) {
$ret['success'] = true;
$ret['message'] .= 'Local site - you are already authenticated.' . EOL;
return $ret;
}
- Logger::log('Contact is already authenticated', Logger::DEBUG);
+ Logger::info('Contact is already authenticated');
System::externalRedirect($dest);
}
$exp = explode('/profile/', $contact['url']);
$basepath = $exp[0];
- $headers = [];
- $headers['Accept'] = 'application/x-dfrn+json, application/x-zot+json';
- $headers['X-Open-Web-Auth'] = Strings::getRandomHex();
+ $header = [];
+ $header['Accept'] = 'application/x-dfrn+json, application/x-zot+json';
+ $header['X-Open-Web-Auth'] = Strings::getRandomHex();
// Create a header that is signed with the local users private key.
- $headers = HTTPSignature::createSig(
- $headers,
+ $header = HTTPSignature::createSig(
+ $header,
$user['prvkey'],
- 'acct:' . $user['nickname'] . '@' . DI::baseUrl()->getHostname()() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : '')
+ 'acct:' . $user['nickname'] . '@' . DI::baseUrl()->getHostname() . (DI::baseUrl()->getUrlPath() ? '/' . DI::baseUrl()->getUrlPath() : '')
);
// Try to get an authentication token from the other instance.
- $curlResult = Network::curl($basepath . '/owa', false, ['headers' => $headers]);
+ $curlResult = DI::httpRequest()->get($basepath . '/owa', ['header' => $header]);
if ($curlResult->isSuccess()) {
$j = json_decode($curlResult->getBody(), true);