При входе в Google с WebServerClient ProcessUserAuthorization всегда возвращается «Удаленный сервер возвратил ошибку: (400) неверный запрос». - PullRequest
0 голосов
/ 20 декабря 2018

Это было давно, до сих пор не знаю причину.Мы используем DotNetOpenAuth.OAuth2 для входа в Google для входа на сайт бэк-офиса.То, что мы сделали здесь, мы создали клиент Google, который расширяется от WebServerClient, с нашими API API TokenEndpoint и AuthorizationEndpoint,

public GoogleClient(string clientIdentifier, string clientCredentialApplicator)
        : base(new AuthorizationServerDescription
                   {
                       TokenEndpoint = new Uri(@"https://accounts.google.com/o/oauth2/token"),
                       AuthorizationEndpoint = new Uri(@"https://accounts.google.com/o/oauth2/auth"),
                       ProtocolVersion = ProtocolVersion.V20,
                   })
    {
        ClientIdentifier = clientIdentifier;
        ClientCredentialApplicator = ClientCredentialApplicator.PostParameter(clientCredentialApplicator);
    }

, затем после инициализации этого клиента Google мы вызываем Authenticate,

client.RequestUserAuthorization(returnTo: callback,
                                        scope: new string[] {"https://www.googleapis.com/auth/userinfo.profile"});

Затем, после того, как мы получим обратный звонок от Google, мы будем использовать этот клиент для получения авторизации, такие коды

var authorization = client.ProcessUserAuthorization(); = client.ProcessUserAuthorization();

На этом этапе мы пытались получить предоставленный AccessToken от Google, но всегда будемвернуть с «Удаленный сервер возвратил ошибку: (400) неверный запрос.», кто-нибудь сталкивался с этой проблемой раньше?

Вложено полученное исключение:

at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(HttpWebRequest request, DirectWebRequestOptions options)
   at DotNetOpenAuth.Messaging.Channel.RequestCore(IDirectedProtocolMessage request)
   at DotNetOpenAuth.Messaging.Channel.Request(IDirectedProtocolMessage requestMessage)
   at DotNetOpenAuth.OAuth2.ClientBase.UpdateAuthorizationWithResponse(IAuthorizationState authorizationState, EndUserAuthorizationSuccessAuthCodeResponse authorizationSuccess)
   at DotNetOpenAuth.OAuth2.WebServerClient.ProcessUserAuthorization(HttpRequestBase request)    

Спасибо

...