Google OAuth token exchange returns invalid_code

The life span of authorization code is only 10 mins,and can only be used one time. So do these checks:

  1. Do you use it 10 min later? If so, use it in 10 mins.
  2. Have you used it before? If so, obtain a new one and then use it.
  3. Is you server time in sync with Google OAuth server's? If not, change your time.

I was using http://localhost:8080 as my redirect url since I was just trying out their examples. And my json file contents had this:

"redirect_uris": [
  "http://localhost:8080"
],
"javascript_origins": [
  "http://localhost:8080"
]

In the developer console I had the redirect_uri set to "http://localhost:8080" and I was getting the same error. I changed it to "http://localhost:8080/" and then it started working. (Essentially adding a '/' at the end.)

Hope this helps!