2015-03-18 2 views
1

Я пользуюсь услугами социальной учетной записи, чтобы обеспечить регистрацию/вход для моего приложения в различных социальных сетях. Можно ли назначить пользователей, которые используют социальный вход для ролей и/или групп? Я просмотрел пакет ролей для учетных записей и в других местах, но я не могу понять, где добавить крючки, где определять роли и т. Д.Как назначить роли пользователей при регистрации/входе в социальные сети?

ответ

2

Коллекция Meteor.users такая же, как и любая другая коллекция, и единственное, что социальные службы службы делают это добавить пользователя в эту коллекцию и добавить объект facebook/twitter/github к вашему пользователю с определенной информацией о социальной сети. Вы можете отредактировать его, как обычную учетную запись пользователя accounts-password, и добавить к ней дополнительные данные, например роли. Вы можете добавить роль по умолчанию с помощью метода Accounts.onCreateUser, а затем настроить роли впоследствии так:

Accounts.onCreateUser(function(options, user) { 
    user.role = "standard" 
    return user; 
}); 

По умолчанию объект пользователя ограничивается только профиль объекта, так что если вы хотите использовать новую роль вам данные» вы добавили в свой пользовательский объект, вам нужно будет сделать обычную публикацию/подписку на него. Или, если вы не хотите делать, что вы могли бы просто добавить роль в профиле объекта:

Accounts.onCreateUser(function(options, user) { 
    user.profile.role = "standard" 
    return user; 
}); 

А затем убедитесь, что вы не позволяют ему быть отредактирован на стороне клиента с помощью вызова разрешить/запретить правила. Я предполагаю, что вы не хотите, чтобы люди хотели изменить свои роли!

+0

thx для деталей Jeff. Там, где я потерялся, следует добавить метод onCreateUser. кажется, что каждый пример метеора, который я могу найти, старше, и каждый использует другую структуру. Этот метод принадлежит Meteor.startup? Извиняюсь за такие вопросы noob, но я только начинаю. – RyGuy

+0

Hey Ry, вы можете поместить его в любом месте на сервере, я сам создал файл 'accounts.js' на сервере и разместил его там. Это не обязательно для 'Meteor.startup', потому что это запускается при запуске, эта функция вызывается, когда пользователь создается. Вот подробности в документах: http://docs.meteor.com/#/full/accounts_oncreateuser Просто убедитесь, что вы поместили его в папку сервера в своем проекте. –

+0

Если вы используете [метеоритные роли] (https://github.com/alanning/meteor-roles), посмотрите на http://stackoverflow.com/questions/22649600/unable-to-add-roles -to-user-with-meteor-uses-role-package, включая два не выбранных ответа. – Dan

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