“redirect_uri”在 OAuth2 客户端上不起作用


"redirect_uri"doesn't work using OAuth2 client

const CLIENT_ID              = '....';
const CLIENT_SECRET          = '';
const REDIRECT_URI           = 'http://localhost/myappli/web/app_dev.php/';
const AUTHORIZATION_ENDPOINT = 'http://example.com/';
const TOKEN_ENDPOINT         = 'http://example/index.php5/oauth/access_token';

/**
 * Connexion to API
 *
 * @return response
 */
public function connexionAction()
{
    $client = new Client(self::CLIENT_ID, self::CLIENT_SECRET);
    if (!isset($_GET['code']))
    {
        $authUrl = $client->getAuthenticationUrl(self::AUTHORIZATION_ENDPOINT, self::REDIRECT_URI);
        return $this->redirect($authUrl);
    }
    else
    {
        $params = array('code' => $_GET['code'], 'redirect_uri' => self::REDIRECT_URI);
        $infosConnexion = $client->getAccessToken(self::TOKEN_ENDPOINT, 'authorization_code', $params);
        $accessToken = $infosConnexion['result']['access_token'];
        $client->setAccessToken($accessToken);
        $response = $client->fetch('http://example/index.php5/api/v3/user/infos');
        //var_dump($response);exit;
    }
}

这是我使用 oauth2 连接到其他应用程序以获取access_token的代码,以便使用它连接到 API。

但问题是,在进行身份验证后,我不会重定向到我的应用程序(" http://localhost/myappli/web/app_dev.php/ ")。

那么如何重定向到我的应用程序以获取access_token呢?

您是否在应用程序设置页面中提供了相同的重定向 URI?如果您指定您的应用程序(应用程序类型,如Facebook,Twitter等),我可以以更好的方式为您提供帮助。