nextauthjs / next-auth

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

Resend email provider does not create an entry in Account table #10662

Open gnasamx opened 7 months ago

gnasamx commented 7 months ago

Provider type

Email

Environment

Reproduction URL

https://github.com/gnasamx/my-app/blob/main/lib/auth.ts

Describe the issue

Doc says magic link will also add an entry in Account table. Link: https://authjs.dev/concepts/database-models#account

But Account has some problem. I'm using Resend provider. It's minimal setup (repo link is below). But I don't see a user entry in Account table. I can confirm that the User, Session, VerificationToken table entries are working correctly.

Screenshot 2024-04-20 at 10 49 28 PM

How to reproduce

Expected behavior

An entry (with type as "email" and provider as "Resend") should be added on successfully verifying the email sign in invitation link.

tarun7singh commented 6 months ago

After seeing your issue i checked my mongodb cluster and this is correct, All users that came through resend are not being added to the account collection.

mickasmt commented 6 months ago

@gnasamx @tarun7singh If you only use email with Resend then the recording will only be made in the User table Account table is only for other providers like Google, Github, etc. If you sign in by email first and then use a Google account with the same email address, you will see a record in Account and this will automatically be linked to the one in User by user ID. This is what I understood with the documentation and after doing the test locally. Is this right?

gnasamx commented 6 months ago

No. What you are talking is related to account linking (with same email) if I'm not wrong. Also I'm pretty sure, this was working a couple a days ago. I mean I have seen an entry in Account table with type as an email and provider as a Resend after successfully verification.

Also it is mentioned the docs that magic link will create an entry in Account table. I have attached a doc link in the first comment.

If I understood it correctly then this is part of code that runs on verify callback back for email type and related to account: https://github.com/nextauthjs/next-auth/blob/662e84f9a65eb0e74dc07e924aa15dfb37631f85/packages/core/src/lib/actions/callback/index.ts#L224

Let's see if someone knows/facing this issue.

JesperSvensson00 commented 4 months ago

I am facing the same issue. Did you find a find a fix for this or identified the cause?

gnasamx commented 3 months ago

Sorry but no, I did not identified the cause. I decided not to use the magic link for a time being.

kjendrzyca commented 1 week ago

I'm facing the same issue. Is it a bug or an expected behavior?

ericshively commented 1 day ago

Also having this issue. Seems to be a bug since the Next-Auth docs say: "Account creation in the database is automatic and happens when the user is logged in for the first time with an authentication provider (either OAuth, magic links or plain credentials) or the Adapter.linkAccount method is invoked."

We may need to manually invoke the Adapter.linkAccount

https://authjs.dev/concepts/database-models#account