Для веб-сайта я бы хотел, чтобы пользователи могли входить в систему, используя свое уникальное имя пользователя или адрес электронной почты.
Однако на этом сайте могут быть разрешены несколько учетных записей пользователей с одним и тем же адресом электронной почты. (Например, это может быть один и тот же человек, работающий в двух разных компаниях и т. Д. Кроме того, по деловым причинам каждая учетная запись пользователя связана только с одной компанией. Поэтому, если пользователи работают в более чем одной компании, у них есть один логин для каждой один.)
Вот несколько возможных способов справиться с этим, когда пользователь входит в систему с адресом электронной почты:
Если адрес электронной почты совпадает с несколькими учетными записями, а пароль (конечно, хэшированный) соответствует хотя бы одному из паролей учетной записи с этим адресом, выполните одно из следующих действий:
A. Сообщите пользователю, что его адрес электронной почты связан с несколькими учетными записями, поэтому вместо этого ему нужно будет войти в систему, используя свое имя пользователя.
или
B. То же, что и A, однако, если пароль точно соответствует одному из паролей учетной записи, просто примите его и войдите в систему как эта учетная запись.
Я бы хотел пойти с B. Однако, использование пароля для разграничения двух учетных записей кажется, что оно может иметь некоторые очевидные ошибки безопасности (которые я могу пропустить), или даже некоторые неочевидные.
Будет ли это хорошим решением или есть общепринятая "лучшая практика" для этого?