【问题标题】:Fi-ware IDM - Oauth2 php client configurationFi-ware IDM - Oauth2 php 客户端配置
【发布时间】:2017-12-16 11:39:17
【问题描述】:

我正在尝试使用提供 Oauth 2.0 登录的 FiWare Identity Management - KeyRock。我已经在 Fiware 网页中配置了我的应用程序以设置 url 和回调 url,并且我已经获得了我的客户端 ID 和密码。

现在我正在尝试将 API 与一个简单的 PHP 客户端 Oauth2.0 库一起使用。我选择了this。看起来非常好用,但是我有个问题:

当我打开我的网站时,我被正确重定向到了 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();

和回调.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()));
}

【问题讨论】:

    标签: php oauth oauth-2.0 fiware


    【解决方案1】:

    我从来没有使用过那个库,但是看看……你确定“token_endpoint”配置正确吗?令牌端点 (/oauth2/token) 与回调 URL 不同。

    BR

    【讨论】:

      猜你喜欢
      • 2017-03-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2015-06-24
      • 2017-10-27
      • 1970-01-01
      • 2012-10-22
      • 1970-01-01
      相关资源
      最近更新 更多