parse-community / parse-server-api-mail-adapter

API Mail Adapter for Parse Server
MIT License
27 stars 18 forks source link

Support users use their email as their username #55

Open yomybaby opened 2 years ago

yomybaby commented 2 years ago

New Issue Checklist

Issue Description

Parse-server supports "users use their email as their username" :

On the resetting passwords section of parse-server JS SDK document,

This will attempt to match the given email with the user’s email or username field, and will send them a password reset email. By doing this, you can opt to have users use their email as their username, or you can collect it separately and store it in the email field.

On the signing up section,

You are free to use an email address as the username. Simply ask your users to enter their email, but fill it in the username property — Parse.User will work as normal. We’ll go over how this is handled in the reset password section.

Email adapter have to handle username as an email in this case. When the adapter got there user object as recipient and email filed of user is empty, use username as an email.

Parse-server check below code of parse-server:

If you want check the early discussion of this issue, please check this

Steps to reproduce

Failing Test Case / Pull Request

54

Environment

Logs

mtrezza commented 2 years ago

Thanks for opening this issue. That's an interesting behavior of Parse Server. I understand the intention of that behavior, but I am not sure it should be that way, because its an unclean approach in terms of data separation, and it creates a lot of issues down the road. It probably also breaks the email verification logic for that user. If the user has an email in the username field and a different email in the email field, it's unclear which email would be verified. So this looks much like a bug in Parse Server, which should be fixed.

If Parse Server currently behaves that way, and we decide to propagate the bug into this email adapter, we would need to consider the order of the fields checked, in case there are two different email addresses stored. Is it email || username or username || email?

In any case, it would be good if you could additionally open an issue in Parse Server about this.

parse-github-assistant[bot] commented 2 years ago

Thanks for opening this issue!