2015-07-15 4 views
0

Мы хотели бы иметь возможность использовать модель аутентификации по электронной почте + пароль с помощью firebase. Тем не менее, наше приложение будет определять пользовательские роли и хранить их в наших данных, контролируя доступ каждого пользователя. Мы хотели бы, чтобы пользователи-администраторы, имеющие самую высокую роль, могли обновлять адрес электронной почты пользователя. В настоящее время это выглядит как единственная функция, которую я вижу для этого, changeEmail, требует, чтобы пароль был передан. Есть ли способ разрешить администратору в системе обновлять адрес электронной почты пользователя, не зная пароля пользователей?Использование электронной почты + пароль для аутентификации пользователя позволяет администратору изменять адрес электронной почты пользователя

+0

Это кажется мне плохой идеей, конечно, вы просто навязываете людей? Почему вы хотите вручную изменить адрес электронной почты пользователя? – Chrillewoodz

+0

Представьте ситуацию, когда пользователь изменил свой адрес электронной почты и больше не сможет получить доступ к своему старому адресу электронной почты. Кроме того, представьте, что этот пользователь не может запомнить свой пароль, потому что он всегда сохранялся в системе, и они не вводили его все время. Этот пользователь не может использовать сброс пароля, так как он не может получить доступ к своей электронной почте. Поэтому они вызывают группу поддержки и просят сбросить их электронную почту. Примечание. Приложение, которое я создаю, не является открытым для публики, оно является внутренним бизнес-приложением, поэтому нет никакой озабоченности по поводу проверки того, кем является пользователь. Кроме того, новые пользователи создаются группой поддержки. –

+0

Дополнительная мысль - без возможности для команды поддержки изменить адрес электронной почты пользователей, я думаю, что единственное другое решение состоит в создании функциональности «слияния», когда записи для одного пользователя переносятся на другого пользователя. Это похоже на большую работу лично. В качестве альтернативы, я также могу реализовать пользовательскую аутентификацию. –

ответ

0

С Firebase SDK 2.5.0 невозможно запустить changeEmail() или любой из методов auth без использования текущего пароля пользователя.

Единственной административной опцией будет миграция. Удалите учетную запись в панели управления приложениями, создайте новую, заменив существующий uid в базе данных новыми uid.

+0

Kato - Я считаю, что второй элемент, используя resetPassword(), будет работать, только если пользователь все еще имеет доступ к своему адресу электронной почты. Если они не знают свой пароль, и у них больше нет доступа к их электронной почте, чтобы получить ссылку на сброс, единственным вариантом является первый элемент, который вы указали. –

+0

Отличная точка. Обновлено. – Kato

Смежные вопросы