oauth — Fimware IDM — настройка клиента Oauth2 php

Я пытаюсь использовать FiWare Управление идентификацией — KeyRock это обеспечивает логин Oauth 2.0. Я настроил свое приложение на веб-странице Fiware для установки URL-адреса и URL-адреса обратного вызова, и у меня есть идентификатор клиента и мой пароль.

Сейчас я пытаюсь использовать API с простой библиотекой PHP-клиента Oauth2.0. Я выбрал этот. Это выглядит очень просто в использовании, но у меня есть проблема:

Когда я открываю свой веб-сайт, меня правильно перенаправляют на веб-страницу входа в fi-ware, но после входа в систему меня не перенаправляют на страницу обратного вызова моей веб-страницы, я продолжаю работу на веб-странице fi-ware labs.

Это мой код:

index.php:

<?php

require_once 'vendor/autoload.php';

use fkooman\OAuth\Client\Guzzle6Client;
use fkooman\OAuth\Client\ClientConfig;
use fkooman\OAuth\Client\SessionStorage;
use fkooman\OAuth\Client\Api;
use fkooman\OAuth\Client\Context;

$clientConfig = new ClientConfig(
array(
'authorize_endpoint' => 'https://account.lab.fi-ware.org',
'client_id' => 'my_client_id',
'client_secret' => 'my_secret',
'token_endpoint' => 'http://estebanxabi.miwp.eu/otros/callback.php',
)
);

$tokenStorage = new SessionStorage();
$httpClient = new Guzzle6Client();
$api = new Api('foo', $clientConfig, $tokenStorage, $httpClient);

$context = new Context('sampleEmail', array('authorizations'));

$accessToken = $api->getAccessToken($context);
if (false === $accessToken) {
/* no valid access token available, go to authorization server */
header('HTTP/1.1 302 Found');
header('Location: '.$api->getAuthorizeUri($context));
exit;
}

echo 'Access Token: '.$accessToken->getAccessToken();

и callback.php:

<?php

require_once 'vendor/autoload.php';

use fkooman\OAuth\Client\Guzzle6Client;
use fkooman\OAuth\Client\ClientConfig;
use fkooman\OAuth\Client\SessionStorage;
use fkooman\OAuth\Client\Callback;

$clientConfig = new ClientConfig(
array(
'authorize_endpoint' => 'https://account.lab.fi-ware.org',
'client_id' => 'client_ide',
'client_secret' => 'seceret',
'token_endpoint' => 'http://estebanxabi.miwp.eu/otros/callback.php',
)
);

try {
$tokenStorage = new SessionStorage();
$httpClient = new Guzzle6Client();

$cb = new Callback('foo', $clientConfig, $tokenStorage, $httpClient);
$cb->handleCallback($_GET);

header('HTTP/1.1 302 Found');
header('Location: http://localhost/fkooman/php-oauth-client/example/simple6/index.php');
exit;
} catch (fkooman\OAuth\Client\Exception\AuthorizeException $e) {
// this exception is thrown by Callback when the OAuth server returns a
// specific error message for the client, e.g.: the user did not authorize
// the request
die(sprintf('ERROR: %s, DESCRIPTION: %s', $e->getMessage(), $e->getDescription()));
} catch (Exception $e) {
// other error, these should never occur in the normal flow
die(sprintf('ERROR: %s', $e->getMessage()));
}

2

Решение

Я никогда не пользовался этой библиотекой, но взглянул … вы уверены, что «token_endpoint» правильно настроен? Это не та же конечная точка токена (/ oauth2 / token), что и URL обратного вызова.

BR

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]