2016-07-13 4 views

ответ

2

Для чего это стоит, это так, как это внутренне сделано в метеора:

DDP._CurrentInvocation.withValue(new DDPCommon.MethodInvocation({ 
    isSimulation: false, userId: getCustomUserId(req.headers), 
}), function() { 
    // now things like Meteor.userId() work as expected 
    // also every method called here will get the right userId 
}); 

Единственный недостаток этого решения заключается в том, что он чувствует, как использовать какой-то частной API (или, по крайней мере, не документированы методы), которые могут со временем меняться. Если вы не боитесь этого, я верю, что это путь.

Редактировать

Как @Guig упоминалось в комментарии, один также необходимо meteor add ddp-common.

+0

Спасибо, он работает очень хорошо. Вы также должны включить пакет DDPCommon в свои зависимости от Meteor. – Guig

+0

Правильно. Вероятно, я должен был ответить на этот вопрос. –

+0

Я думаю, что команда 'meteor add ddp-common' :) Спасибо за редактирование – Guig

0

Вы пытаетесь позволить администратору олицетворять пользователей? Если это так, то пакет gwendall:impersonate может быть вам полезен.

Impersonate.do(userId, callback) 

Или вы пытаетесь пройти аутентификацию пользователей по-другому? Существует множество существующих пакетов для аутентификации различными способами.

+0

Посмотрев на «выдающийся» пакет, похоже, что это решение работает только на стороне клиента. –

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