Как изменить имя профиля в Meteor?

Интересно, как изменить информацию о профиле пользователя в Meteor. Я создал приложение, использующее базовый пакет учетных записей, поэтому я могу быстро управлять всеми связанными с ними учетными записями пользователей. Что действительно здорово.

В официальных документах говорится:

profile: объект, который (по умолчанию) пользователь может создавать и обновлять любыми данными.

Но как я могу позволить пользователю изменить его?

В отношении той же темы, используя тег {{loginButtons}} по умолчанию, я получаю следующее изображение, когда пользователь вошел в систему:

enter image description here

Есть ли возможность добавить Change profile, Change email или что-то подобное?

Спасибо

Ответ 1

На данный момент accounts-ui не имеет встроенной кнопки профиля изменения, вы должны сделать ее вручную.

Например, если вы делаете

Meteor.users.update({_id:Meteor.user()._id}, {$set:{"profile.name":"Carlos"}})

Вы можете изменить экран в accounts-ui выше, чем вы должны показать имя вместо того, что вы нажимаете, чтобы отобразить диалоговое окно выше.

Электронная почта немного сложна, вы должны сделать это с сервера, так как (в meteor.methods/call возможно) вы не можете изменять данные электронной почты от клиента, я бы предложил добавить новое письмо и проверяя его вместо того, чтобы изменять существующий адрес электронной почты (так как он также является их логином). Или сначала проверить, а затем изменить его, чтобы не изменять кому-то электронную почту на то, где они не могут восстановить свой пароль.

Meteor.users.update({_id:Meteor.user()._id}, {$addToSet:{"emails":{address:"[email protected]","verified":false}}});

Или, если вы хотите, чтобы у пользователей было одно электронное письмо, они могут меняться:

Meteor.users.update({_id:Meteor.user()._id}, {$set:{"emails":[{address:"[email protected]"}]});