Obawiam się, że nie jest to możliwe. Domyślam się, że problem polega na tym, że próbujesz połączyć się z serwerem za pomocą dwóch różnych protokołów - zarówno dosłownie, jak i logicznie - tak więc nie ma oczywistego sposobu na powiązanie tych dwóch działań.
Istnieje jednak bardzo proste rozwiązanie, które może odpowiadać Twoim potrzebom. Będziesz musiał opracować prosty system tokenów przywilejów, tajnych kluczy lub cokolwiek je nazwiesz. Po pierwsze, stworzenie metody serwera
var Secrets = new Meteor.Collection("secrets"); // only on server!!!
Meteor.methods({
getSecretKey: function() {
if (!this.userId)
// check if the user has privileges
throw Meteor.Error(403);
return Secrets.insert({_id: Random.id(), user: this.userId});
},
});
Następnie można teraz używać go na kliencie, aby uzyskać secretKey
które przywiązują do żądania AJAX
(lub coś), albo w nagłówku HTTP
lub w samym URL
. Nie bój się! Wszystkie zostaną zaszyfrowane, jeśli używasz HTTPS
.
Po stronie serwera można teraz pobrać secretKey
z przychodzącego żądania i sprawdzić, czy jest on obecny w kolekcji Secrets
. Dowiesz się wtedy, czy użytkownik ma określone uprawnienia, czy nie. Możesz również usunąć tajne klucze z kolekcji po pewnym czasie ze względów bezpieczeństwa.
starałem się uzyskać tej pracy, jak również, ale nie. Zamiast tego napisałem Meteor Metodzie. To nie jest idealne, ale przynajmniej w moim przypadku było to możliwe rozwiązanie mojego problemu. –