nextauthjs / next-auth

Authentication for the Web.
https://authjs.dev
ISC License
22.87k stars 3.08k forks source link

Request timed out error while using Google provider #3920

Closed appocal-main closed 2 years ago

appocal-main commented 2 years ago

Description ๐Ÿœ

After following the docs for Prisma Adapter and Google Provider, I added auth to my repo, but when trying to log in through google auth, it's timing out for some reason.

image

I even tried with a longer timeout, but still no luck :(

providers: [
    GoogleProvider({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
      httpOptions: {
        timeout: 10000,
      }
    })
  ],

image

Is this a bug in your own project?

Yes

How to reproduce โ˜•๏ธ

I replicated the issue in a new separate repo, just add the env variable and run it in local - https://github.com/Nikit-Singh/next-auth-google-issue

Screenshots / Logs ๐Ÿ“ฝ

No response

Environment ๐Ÿ–ฅ

System: OS: Windows 10 10.0.22000 CPU: (16) x64 AMD Ryzen 7 3700X 8-Core Processor Memory: 4.38 GB / 15.95 GB Binaries: Node: 16.13.0 - C:\Program Files\nodejs\node.EXE Yarn: 1.22.17 - ~\AppData\Roaming\npm\yarn.CMD npm: 8.3.1 - C:\Program Files\nodejs\npm.CMD Browsers: Edge: Spartan (44.22000.120.0), Chromium (96.0.1054.62) Internet Explorer: 11.0.22000.120
npmPackages: next: 12.0.10 => 12.0.10 next-auth: ^4.2.1 => 4.2.1 react: 17.0.2 => 17.0.2

Contributing ๐Ÿ™Œ๐Ÿฝ

Yes, I am willing to help solve this bug in a PR

sc0rp10n-py commented 2 years ago

Is there any fix for this? I am also facing the same issue.

[next-auth][error][OAUTH_CALLBACK_ERROR]
https://next-auth.js.org/errors#oauth_callback_error outgoing request timed out after 3500ms {
  error: {
    message: 'outgoing request timed out after 3500ms',
    stack: 'RPError: outgoing request timed out after 3500ms\n' +
      '    at /home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/helpers/request.js:136:13\n' +
      '    at async Client.grant (/home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/client.js:1329:22)\n' +
      '    at async Client.callback (/home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/client.js:474:24)\n' +
      '    at async oAuthCallback (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/lib/oauth/callback.js:112:16)\n' +
      '    at async Object.callback (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/routes/callback.js:50:11)\n' +
      '    at async NextAuthHandler (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/index.js:139:28)\n' +
      '    at async NextAuthNextHandler (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/next/index.js:21:19)\n' +
      '    at async /home/sc0rp10n/fictional-adventure/node_modules/next-auth/next/index.js:57:32\n' +
      '    at async Object.apiResolver (/home/sc0rp10n/fictional-adventure/node_modules/next/dist/server/api-utils.js:101:9)\n' +
      '    at async DevServer.runApi (/home/sc0rp10n/fictional-adventure/node_modules/next/dist/server/next-server.js:320:9)',
    name: 'RPError'
  },
  providerId: 'google',
  message: 'outgoing request timed out after 3500ms'
}
[next-auth][error][CALLBACK_OAUTH_ERROR]
https://next-auth.js.org/errors#callback_oauth_error outgoing request timed out after 3500ms RPError: outgoing request timed out after 3500ms
    at /home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/helpers/request.js:136:13
    at async Client.grant (/home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/client.js:1329:22)
    at async Client.callback (/home/sc0rp10n/fictional-adventure/node_modules/openid-client/lib/client.js:474:24)
    at async oAuthCallback (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/lib/oauth/callback.js:112:16)
    at async Object.callback (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/routes/callback.js:50:11)
    at async NextAuthHandler (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/core/index.js:139:28)
    at async NextAuthNextHandler (/home/sc0rp10n/fictional-adventure/node_modules/next-auth/next/index.js:21:19)
    at async /home/sc0rp10n/fictional-adventure/node_modules/next-auth/next/index.js:57:32
    at async Object.apiResolver (/home/sc0rp10n/fictional-adventure/node_modules/next/dist/server/api-utils.js:101:9)
    at async DevServer.runApi (/home/sc0rp10n/fictional-adventure/node_modules/next/dist/server/next-server.js:320:9) {
  name: 'OAuthCallbackError',
  code: undefined
}

The same code works fine in production but in localhost this error is coming.

sc0rp10n-py commented 2 years ago

I just redeployed the local code to another domain using vercel, and it works in production, the bug is only for localhost I think. Could anyone confirm once? Any fixes the please tag me.

kpratik2015 commented 2 years ago

Facing same issue only for localhost

fyt22 commented 2 years ago

facing the same issue on localhost randomly.

panva commented 2 years ago

No bug in sight, your Node.js process may not be able to reach google servers for a variety of local network / network setup related reasons.

lakshyasharma14 commented 2 years ago

I am facing the same issue for the past 24 hours only, the same code worked fine earlier, and I have never encountered this issue before. @panva Is there any way to debug this further? Is there a way I can increase this time out, as in the first update httpOptions : timeout is passed but that seems to be an incorrect way.

panva commented 2 years ago

Try NODE_DEBUG=http,https.

I am facing the same issue for the past 24 hours only, the same code worked fine earlier, and I have never encountered this issue before.

openid-client is not the source of your issue then

balazsorban44 commented 2 years ago

Anyone, it's likely a local network issue, but you can set a higher timeout:

3188

this has also been asked before, please search through old issues/discussions before opening a new one.

https://github.com/nextauthjs/next-auth/discussions/3186

militiwari commented 2 years ago

Hi, facing the same issue only on localhost. If any solution please write here.

fyt22 commented 2 years ago

It seems there is some issue with the auth server, because when I increase the timeout to 40 secs from openid-client it times out again with an error https://next-auth.js.org/errors#callback_oauth_error connect ETIMEDOUT 13.127.247.216:443 Error: connect ETIMEDOUT 13.127.247.216:443 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) { name: 'OAuthCallbackError', code: 'ETIMEDOUT' } This is not the right place to discuss this, move it to discussion if you want help.

AnishDe12020 commented 2 years ago

Is this still happening for everyone? It is happening for me, not only with google auth but also with github auth. Was anyone able to find a fix?

lakshyasharma14 commented 2 years ago

It is working fine for me now.

AnishDe12020 commented 2 years ago

It is working fine for me now.

Oh, on production or dev? Also, which provider are you using and did you have to set anything else up? (other than clientId and clientSecret)

lakshyasharma14 commented 2 years ago

This issue was only happening with google provider, and not with other providers. If you are having a problem with all the providers it's more of a config /app issue from your side.

AnishDe12020 commented 2 years ago

This issue was only happening with google provider, and not with other providers. If you are having a problem with all the providers it's more of a config /app issue from your side.

Oh, it is happening with GitHub for me as well. I have set all the fields as well -

export default NextAuth({
  adapter: CustomMongooseAdapter(),
  providers: [
    GoogleProvider({
      clientId: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
    }),
    GitHubProvider({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
    }),
  ],
  callbacks: {
    async session({ session, token, user }) {
      // Store the user's profile in the session
      session.user = user;
      return session;
    },
  },
});

Don't know if I am going wrong anywhere. Also this problem started occuring out of nowhere. Don't know why.

ahmedelq commented 2 years ago

This issue was only happening with google provider, and not with other providers. If you are having a problem with all the providers it's more of a config /app issue from your side.

It's not working with Github as well.

lakshyasharma14 commented 2 years ago

Can you guys try passing httpOptions with timeout like shown below (40000 is in ms)and check the error, now it won't timeout because of openid-client, but you'll see some error due to network issue with google/github auth server from there you can further check the issue.

GoogleProvider({
      clientId: process.env.GOOGLE_ID,
      clientSecret: process.env.GOOGLE_SECRET,
      httpOptions: {
        timeout: 40000,
      },
    }),
militiwari commented 2 years ago

Problem solved for me without changing anything.

ahmedelq commented 2 years ago

It works for Google provider, but not GitHubs.

ma3ve commented 2 years ago

I had this issue on wsl when I switched to windows, it worked as expected. maybe some kind of network issue with wsl?

tippfelher commented 2 years ago

How is this closed? oO

ShlokDesai33 commented 2 years ago

I'm facing the same issue with the Google Provider too. Increasing the timeout doesn't seem to do any good.

RainKolwa commented 2 years ago

FYI: It worked for me when using Chrome with Incognito mode.

mhaslinsky commented 1 year ago

Same issue, cropped up randomly after working for days in dev (localhost). Works fine when deployed in prod. No changes were made whatsoever to the Nextauth config. Lengthened http timeout to 40s, same error. 'outgoing request timed out after 40000ms'

Ger4eK commented 1 year ago

Same issue, cropped up randomly after working for days in dev (localhost). Works fine when deployed in prod. No changes were made whatsoever to the Nextauth config. Lengthened http timeout to 40s, same error. 'outgoing request timed out after 40000ms'

Soo did you fix it????

5thDimensionalVader commented 1 year ago

I had this issue on wsl when I switched to windows, it worked as expected. maybe some kind of network issue with wsl?

Hi, currently using WSL and facing this issue. Tried the timeout 40s as suggested but it doesn't seem to work. How did you fix yours? I was thinking it's an issue with the version of node i'm using.

fazzaamiarso commented 1 year ago

I faced this issue a couple times with different providers and I get it to work by turning on/off my wifi connection in my laptop.

dalalRohit commented 1 year ago

this happened with me while i was on "A" wifi. switched it to "B", issue gone away ;(

TrevPennington commented 1 year ago

This is happening to me with Email provider.

Gustaf-Hard commented 1 year ago

For me this got fixed by making sure the "Signin.js" page was not inside the pages->api->auth folder and instead put in a folder pages->auth.

My [...nextauth].js file looks like this:


import GoogleProvider from "next-auth/providers/google";

export default NextAuth({
    providers: [
        GoogleProvider({
            clientId: process.env.GOOGLE_CLIENT_ID,
            clientSecret: process.env.GOOGLE_CLIENT_SECRET
        })
    ],
    secret: process.env.JWT_SECRET,
    pages: {
        signIn: '/auth/signin'
    }

})
SimplyUnnamed commented 1 year ago

For me this got fixed by making sure the "Signin.js" page was not inside the pages->api->auth folder and instead put in a folder pages->auth.

confirmed this worked for me as well...

wdpza commented 1 year ago

@RainKolwa

FYI: It worked for me when using Chrome with Incognito mode.

Same result here. Did you manage to find out why?

youngle316 commented 1 year ago

No bug in sight, your Node.js process may not be able to reach google servers for a variety of local network / network setup related reasons.

This is the real reason, I use the clashX Pro for proxy, delete the localhost and 127.0.0.1 in the setting. Ignore proxy settings for these hosts and domains

JohnVersus commented 1 year ago

Weird!! For me, it got fixed when I changed my network from a mobile hotspot to wifi network. It is reproducible too.

ProgrammerOwais commented 1 year ago

its simple answer is to change your network connectionn, mobile hotspot to wifi network. I don't know exactly whats the problem but I think there could be issue related to google authentication side not the your code side.

ccbond commented 1 year ago

you can import 'global-agent/bootstrap';

hongk-bb commented 1 year ago

No bug in sight, your Node.js process may not be able to reach google servers for a variety of local network / network setup related reasons.

This is the real reason, I use the clashX Pro for proxy, delete the localhost and 127.0.0.1 in the setting. Ignore proxy settings for these hosts and domains

Hi, @youngle316

Can you provide a detailed process? I am using Clash for Window and my GitHub login was successfully tested, but Google did not

This is my Clash related configuration:

mixed-port: 7890
allow-lan: false
external-controller: 127.0.0.1:49749
secret: e1af22c3-cc14-4c99-8bd1-f170a634d755
ipv6: false
youngle316 commented 1 year ago

No bug in sight, your Node.js process may not be able to reach google servers for a variety of local network / network setup related reasons.

This is the real reason, I use the clashX Pro for proxy, delete the localhost and 127.0.0.1 in the setting. Ignore proxy settings for these hosts and domains

Hi, @youngle316

Can you provide a detailed process? I am using Clash for Window and my GitHub login was successfully tested, but Google did not

This is my Clash related configuration:

mixed-port: 7890
allow-lan: false
external-controller: 127.0.0.1:49749
secret: e1af22c3-cc14-4c99-8bd1-f170a634d755
ipv6: false
image

Turn on the TUN Mode

hongk-bb commented 1 year ago
image

Turn on the TUN Mode

I saw a question raised by someone in your repositories, and you answered it the same way. I have tried, but I still haven't fixed it.

bottercode commented 11 months ago

Hi! Did someone fix this? Surfed internet searching for this problem for over 24 hrs and couldn't find one

image

wpalombini commented 11 months ago

I had this issue on wsl when I switched to windows, it worked as expected. maybe some kind of network issue with wsl?

Hi, currently using WSL and facing this issue. Tried the timeout 40s as suggested but it doesn't seem to work. How did you fix yours? I was thinking it's an issue with the version of node i'm using.

I am also having the same problem on wsl. Have you found a solution for this?

wpalombini commented 10 months ago

Hey everyone, I managed to fix the problem when running on WSL by upgrading NodeJS to v20.4.0. The timeouts are no longer happening on this version. If I downgrade it back to v18 or lower the timeouts come back. wsl -v WSL version: 1.2.5.0 Kernel version: 5.15.90.1 WSLg version: 1.0.51 MSRDC version: 1.2.3770 Direct3D version: 1.608.2-61064218 DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows version: 10.0.22621.1992

oyal commented 10 months ago

@hongk-bb I am also using Clash for Windows. This issue was resolved when I turned on TUN Mode. After turning on TUM Mode, I can log in using Github, but this error still occurs when logging in using Google. outgoing request timed out after 3500ms'

image

AamishAnwer commented 10 months ago

this happened with me while i was on "A" wifi. switched it to "B", issue gone away ;(

Bro this also worked for me Wowwwww! I can't believe this

AamishAnwer commented 10 months ago

Changing wifi connection solved this error for me! WEIRD!!!!!!!!!!!!!!!!!!!!

pmuens commented 10 months ago

I had the exact same issue today. Turning off Wifi and then turning it back on solved the problem for me.

callanwu commented 10 months ago

same problem. so weird.

anuragchauhan766 commented 10 months ago

same issue with me , tried many methods but no solution: tried method:

  1. Wifi restart
  2. using personal mobile data
  3. laptop restart
  4. changed timeout in nextauthoptions

Github provider works well, the problem is only with Google provider

using on wsl2 , window 11

WSL version: 1.2.5.0
Kernel version: 5.15.90.1
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.2134

Error message:

[next-auth][error][OAUTH_CALLBACK_ERROR]
https://next-auth.js.org/errors#oauth_callback_error outgoing request timed out after 3500ms {
  error: RPError: outgoing request timed out after 3500ms
      at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/openid-client@5.4.3/node_modules/openid-client/lib/helpers/request.js:115:19)
      at async Issuer.discover (webpack-internal:///(rsc)/./node_modules/.pnpm/openid-client@5.4.3/node_modules/openid-client/lib/issuer.js:135:30)
      at async openidClient (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/lib/oauth/client.js:12:18)
      at async oAuthCallback (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/lib/oauth/callback.js:94:24)
      at async Object.callback (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/routes/callback.js:18:79)
      at async AuthHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/index.js:202:38)
      at async NextAuthRouteHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/next/index.js:50:30)
      at async NextAuth._args$ (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/next/index.js:84:24)
      at async eval (webpack-internal:///(rsc)/./node_modules/.pnpm/next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/future/route-modules/app-route/module.js:254:37) {
    name: 'OAuthCallbackError',
    code: undefined
  },
  providerId: 'google',
  message: 'outgoing request timed out after 3500ms'
}
evanlong0803 commented 10 months ago

So is this problem solved? ๐Ÿคจ

anuragchauhan766 commented 9 months ago

same issue with me , tried many methods but no solution: tried method:

  1. Wifi restart
  2. using personal mobile data
  3. laptop restart
  4. changed timeout in nextauthoptions

Github provider works well, the problem is only with Google provider

using on wsl2 , window 11

WSL version: 1.2.5.0
Kernel version: 5.15.90.1
WSLg version: 1.0.51
MSRDC version: 1.2.3770
Direct3D version: 1.608.2-61064218
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.2134

Error message:

[next-auth][error][OAUTH_CALLBACK_ERROR]
https://next-auth.js.org/errors#oauth_callback_error outgoing request timed out after 3500ms {
  error: RPError: outgoing request timed out after 3500ms
      at eval (webpack-internal:///(rsc)/./node_modules/.pnpm/openid-client@5.4.3/node_modules/openid-client/lib/helpers/request.js:115:19)
      at async Issuer.discover (webpack-internal:///(rsc)/./node_modules/.pnpm/openid-client@5.4.3/node_modules/openid-client/lib/issuer.js:135:30)
      at async openidClient (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/lib/oauth/client.js:12:18)
      at async oAuthCallback (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/lib/oauth/callback.js:94:24)
      at async Object.callback (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/routes/callback.js:18:79)
      at async AuthHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/core/index.js:202:38)
      at async NextAuthRouteHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/next/index.js:50:30)
      at async NextAuth._args$ (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.23.0_next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next-auth/next/index.js:84:24)
      at async eval (webpack-internal:///(rsc)/./node_modules/.pnpm/next@13.4.13_react-dom@18.2.0_react@18.2.0/node_modules/next/dist/server/future/route-modules/app-route/module.js:254:37) {
    name: 'OAuthCallbackError',
    code: undefined
  },
  providerId: 'google',
  message: 'outgoing request timed out after 3500ms'
}

I solve my issue by upgrading node v18.x.x to node v20.x.x