title: Google API Autentication - redirect_uri_mismatch error
body: <p>I'm trying to authenticate my web app with <a href="https://developers.google.com/+/api/" rel="nofollow">Google Plus API</a>. In the <a href="https://console.developers.google.com/project?authuser=0" rel="nofollow">Google Developer console</a> under Credentials for my <code>Cliend Id for Web Application</code>. </p>
  
  <p>I add the following redirect uri: <code>http://localhost:50883/oauth/add_oauth_token</code></p>
  
  <p>When I run my application I get the following Error:</p>
  
  <pre><code>400. That’s an error.
  
  Error: redirect_uri_mismatch
  
  Application: SID3
  
  You can email the developer of this application at: carlosmoralesdiego@gmail.com
  
  The redirect URI in the request: http://localhost:55404/authorize/ did not match a registered   redirect URI.
  
  Learn more
  
  Request Details
  from_login=1
  response_type=code
  scope=https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email    https://www.googleapis.com/auth/userinfo.profile
  access_type=offline
  redirect_uri=http://localhost:55404/authorize/
  as=-45fed094242eac62
  pli=1
  client_id=389029010035-knoo3a2445r77pirc06h8fhgdc5q0dsv.apps.googleusercontent.com
  authuser=0
  hl=es
  </code></pre>
  
  <p>So for any reason google changes my redirect uri to the port 55404, why?. Thanks so much and regards</p>
  
  <p>This is the code:</p>
  
  <pre><code>protected void LoginToGooglePlus(object sender, ImageClickEventArgs e)
      {
  
          PlusService service = null;
          UserCredential credential = null;
  
              string[] scopes = new string[] {PlusService.Scope.PlusLogin, PlusService.Scope.UserinfoEmail,
   PlusService.Scope.UserinfoProfile};
              // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
             try
          {
              // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
              UserCredential credentials;
              using (var stream = new FileStream("C:\\Users\\Usuario\\Documents\\Visual Studio 2010\\Projects\\WebApplication1\\WebApplication1\\client_secret.json", FileMode.Open, FileAccess.Read))
              {
  
                  credentials= GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, scopes, Environment.UserName, CancellationToken.None, new FileDataStore("WebApplication1")).Result;
              }
          }
          catch (Exception ex)
          {
              //If the user hits cancel you wont get access.
              if (ex.InnerException.Message.IndexOf("access_denied") != -1)
              {
                  Console.WriteLine("User declined access");
                  Console.ReadLine();
                  return;
              }
              else
              {
                  Console.WriteLine("Unknown Authentication Error:" + ex.Message);
                  Console.ReadLine();
                  return;
              }
          }
  
          // Now we create a Google service. All of our requests will be run though this.
          service = new PlusService(new BaseClientService.Initializer()
          {
              HttpClientInitializer = credential,
              ApplicationName = "SID3",
          });
  
  
  
  
  }
  </code></pre>
  
  <p>The json file which I use it's this one: </p>
  
  <pre><code>{"web":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","client_secret":"jpkVDaaMjlLCHGh67DJ9Zv19","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"389029010035-knoo3a2445r77pirc06h8fhgdc5q0dsv@developer.gserviceaccount.com","redirect_uris":["http://localhost:50880/Paneles.aspx"],"client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/389029010035-knoo3a2445r77pirc06h8fhgdc5q0dsv@developer.gserviceaccount.com","client_id":"389029010035-knoo3a2445r77pirc06h8fhgdc5q0dsv.apps.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}
  </code></pre>