'CastError: Cast to ObjectId failed for value when using passport google oauth2.0 with mongoose

I'm learning to code recently and have encountered some issues with passport and mongoose for node.js login authentication.

This is the repository link: https://github.com/SamDBauer/Secrets---Starting-Code

When I visited the login or register page, it was able to redirect to google's page. However, after I clicked my google account, the server gave following error message.

> InternalOAuthError: Failed to fetch user profile
>     at /Users/samdong/Documents/web development/Secrets - Starting Code/node_modules/passport-google-oauth20/lib/strategy.js:99:19
>     at ClientRequest.<anonymous> (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/oauth/lib/oauth2.js:162:5)
>     at ClientRequest.emit (node:events:390:28)
>     at TLSSocket.socketErrorListener (node:_http_client:447:9)
>     at TLSSocket.emit (node:events:390:28)
>     at emitErrorNT (node:internal/streams/destroy:157:8)
>     at emitErrorCloseNT (node:internal/streams/destroy:122:3)
>     at processTicksAndRejections (node:internal/process/task_queues:83:21)

If I try to login or register again, I get another error code.

> CastError: Cast to ObjectId failed for value "{   type: 'Buffer',  
> data: [
>      97, 237, 17, 138, 196,
>      97,  81, 96, 187, 208,
>     145, 106   ] }" (type Object) at path "_id" for model "User"
>     at model.Query.exec (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/mongoose/lib/query.js:4639:21)
>     at model.Query.Query.findOne (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/mongoose/lib/query.js:2517:8)
>     at Function.findOne (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/mongoose/lib/model.js:2264:13)
>     at Function.findById (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/mongoose/lib/model.js:2205:15)
>     at /Users/samdong/Documents/web development/Secrets - Starting Code/app.js:44:8
>     at pass (/Users/samdong/Documents/web development/Secrets - Starting Code/node_modules/passport/lib/authenticator.js:354:9)
>     at Authenticator.deserializeUser (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/passport/lib/authenticator.js:359:5)
>     at SessionStrategy.authenticate (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/passport/lib/strategies/session.js:61:10)
>     at attempt (/Users/samdong/Documents/web development/Secrets - Starting
> Code/node_modules/passport/lib/middleware/authenticate.js:369:16)
>     at authenticate (/Users/samdong/Documents/web development/Secrets - Starting Code/node_modules/passport/lib/middleware/authenticate.js:370:7)

Any one knows what is the issue? Thank you



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source