목표 : Zend Framework 웹 응용 프로그램 내에서 사용할 Oauth 공급자 만들기.
프로세스 : Zend Framework OAuth 클라이언트 (ZF 1.12)를 Google 코드 OAuth 클래스 [http://code.google.com/p/oauth/]와 통합했습니다. www 사이트의 클라이언트로 사용하는 ZF 클라이언트, API 사이트의 인증 래퍼에 사용하기위한 Google 코드 OAuth.
솔루션 작동에 도움이 필요하십니까?
URL에 GET 매개 변수가 없으면 두 프레임 워크가 서로 다른 서명을 생성하여 인증을 위반하지 않는 한 솔루션은 기본 요청에 적합합니다.
샘플 코드 WWW :
이$uri = 'http://oauth.example.com/search?q=something';
$Application = array();
$Application['oauth_consumer_key'] = 'app';
$Application['oauth_consumer_secret'] = 'appsecret';
$token = new Zend_Oauth_Token_Access();
$config = array(
'consumerKey' => $Application['oauth_consumer_key'],
'consumerSecret' => $Application['oauth_consumer_secret'],
);
$client = $token->getHttpClient($config);
$client->setUri($uri);
$client->setMethod(Zend_Http_Client::POST);
$client->setHeaders('Content-Type', 'application/json');
$response = $client->request();
샘플 코드 API :
require_once 'OAuth.php';
$userRequest = OAuthRequest::from_request(null, null, null);
$params = $userRequest->get_parameters();
$params['user_request'] = $userRequest;
$request = $params;
$application = array(
'token' => 'app',
'secret' => 'appsecret',
);
// Test OAuth tokens
$oauthConsumer = new OAuthConsumer($application['token'], $application['secret']);
$oauthToken = null;
$signatureMethod = new OAuthSignatureMethod_HMAC_SHA1();
$signature = $signatureMethod->build_signature(
$request['user_request'],
$oauthConsumer,
$oauthToken
);
// If signatures match, return true
if ($request['oauth_signature'] == $signature) {
return true;
}
return false;
Zend_Oauth_Token_Access 사용자 정의 매개 변수를 무시 보인다는 (참조 위의 'Q =?')는 OAuth를 클래스 고려 곳 모든 매개 변수. 즉, 매개 변수가없는 경우 두 시스템이 동일한 서명을 생성합니다.
Zend Oauth 클라이언트가 GET 매개 변수를 고려하지 못하는 것 같습니다.
도와주세요.
먼저 내가 확인을 위해 응용 프로그램 서명을 만들려고합니다. 사용자 서명은 나중에 추가됩니다. –