Henk Jansen
Henk Jansen

Reputation: 1142

Oauth2 response from Google gives DotNetOpenAuth 400 bad request

i am setting up OAuth2 with ServiceStack for Google. I registered google in my web.config as such:

 <add key="oauth.GoogleOAuth.ConsumerKey" value="key"/>
    <add key="oauth.GoogleOAuth.ConsumerSecret" value="secretkey"/>     
      <add key="oauth.GoogleOAuth.RedirectUrl" value="myurl/home"/>  
    <add key="oauth.GoogleOAuth.CallbackUrl" value="myurl.conm/auth/GoogleOAuth"/>

Its registered in my Apphost as such:

 Plugins.Add(new AuthFeature(() => new CustomUserSession(),
        new IAuthProvider[] {
            new CredentialsAuthProvider(appSettings), 
            new FacebookAuthProvider(appSettings), 
            new TwitterAuthProvider(appSettings), 
            new BasicAuthProvider(appSettings), 
            new GoogleOAuth2Provider(appSettings),
        }) { HtmlRedirect = null });

Now when i go to /auth/GoogleOAuth i get redirected to google, allow google to use my stuff, get redirected back to my own /auth/GoogleOAuth, where i assume ServiceStack will handle my troubles, and then i receive the following error:

Response Status

    Error Code
        WebException
    Message
        The remote server returned an error: (400) Bad Request.
    Stack Trace
        [Authenticate: 05/02/2015 09:30:42]: [REQUEST: {provider:GoogleOAuth,state:{thestate} }] System.Net.WebException: The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse() at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(HttpWebRequest request, DirectWebRequestOptions options)

I tried fiddling around with the redirectUrl and the callbackUrl but something tells me this is another problem. I build authentication with twitter and facebook fine in the same way.

The response url it crashes on is as such: myurl/OpenAuthenticationTest/auth/GoogleOAuth?state={statenumber}&code={areallylongcode

Any Ideas?

Edit: it seems to switch between errors: I get this one sometimes as well:

Unexpected OAuth authorization response received with callback and client state that does not match an expected value.

Edit2: I tested some more and it turns out that the exact same thing happens with linkedIn, which is also OAuth2. ALl the oauth1 work fine.

Upvotes: 3

Views: 988

Answers (1)

Henk Jansen
Henk Jansen

Reputation: 1142

It turned out be an issue in the url's i was referring to google and from google with. I had my IIS on a proxy so i could access it from the outside, however google really disliked that. When i entered http://localhost as my URL everything worked fine.

Upvotes: 1

Related Questions