2014-06-07 3 views
0

я есть:Как использовать DotNetOpenAuth.OAuth.DesktopConsumer.RequestUserАвторизация с помощью порта contaqins?

  var service = new ServiceProviderDescription 
      { 
       RequestTokenEndpoint = new MessageReceivingEndpoint(this._requestTokenUrl, this._requestTokenHttpDeliveryMethod), 
       UserAuthorizationEndpoint = new MessageReceivingEndpoint(this._authorizeUrl, HttpDeliveryMethods.GetRequest), 
       AccessTokenEndpoint = new MessageReceivingEndpoint(this._accessTokenUrl, this._accessTokenHttpDeliveryMethod), 
       TamperProtectionElements = new ITamperProtectionChannelBindingElement[] { new HmacSha1SigningBindingElement() }, 
       ProtocolVersion = ProtocolVersion.V10a, 
      }; 

      this._tokenManager = new InMemoryTokenManager(); 
      this._tokenManager.ConsumerKey = this._consumerKey; 
      this._tokenManager.ConsumerSecret = this._consumerSecretKey; 

      this._consumer = new DesktopConsumer(service, this._tokenManager); 

      this._accessToken = string.Empty; 
          consumer.RequestUserAuthorization(null, null, out this.requestToken); 

, когда _requestTokenUrl равен, например, 127.0.0.1:1234/magento - метод генерирует исключение, потому что сервер возвращает: 401 oauth_problem = signature_invalid

Но если я использовать 127.0.0.1/magento он отлично работает.

Как использовать RequestUserAuthorization() с URL-адресом, который содержит порт?

ответ

0

Я нашел решение не в DotNetOpanAuth, а в magento. По умолчанию magento игнорирует порт при подсчете подписи в Mage_Oauth_Model_Server::_validateSignature(). Чтобы изменить его, вы должны передать ложный параметр на $this->_request->getHttpHost(). Возможно, это будет возможно Magento Rest Oauth API (Signature Invalid) 401

 Смежные вопросы

  • Нет связанных вопросов^_^