2013-03-25 9 views
7

Mam prosty formularz, który przechwytuje dane od użytkownika. To tylko pojedyncze pole i datownik do codziennego śledzenia wagi.Umożliwienie przechowywania danych dla klienta, który nie jest zalogowany przy użyciu Meteor Auth, a następnie zapisywanie przy logowaniu

Korzystam z pakietu autoryzacyjnego Meteor. Kiedy użytkownik jest zalogowany, po prostu zapisz identyfikator użytkownika na liście, a następnie filtruję kolekcję dla tego identyfikatora użytkownika.

Jest to w porządku, jeśli zmuszam użytkowników do zalogowania się przed skorzystaniem z systemu.

Ale chciałbym pozwolić użytkownikom najpierw wypróbować system. Mogą więc zapisać 3 lub 4 linie danych, a następnie zdecydować o utworzeniu konta i zapisaniu. W najbliższym czasie chciałbym po prostu zapisać dane z bieżącej sesji (więc jeśli zamkną przeglądarkę bez zapisywania, ich dane zostaną utracone). W fazie 2 chciałbym, aby dane się utrzymywały, więc jeśli nie zapiszą, ale wrócą następnego dnia w tej samej przeglądarce, mogą nadal decydować o zapisaniu swoich danych na stałym koncie.

Obecnie zastanawiam się, czy zapisać uuid zamiast standardowego Meteor.userId dla tymczasowych użytkowników, a następnie po prostu zastąpić tę wartość nowym MeteorytoremDD. Dłuższe zapisywanie losowej liczby jako identyfikatora użytkownika i zapisywanie tych danych w trwałej pamięci podręcznej klienta, a następnie nadpisywanie ich Meteor.UserID podczas tworzenia konta.

Ale jestem nowicjuszem i chciałbym wiedzieć, czy istnieje bardziej elegancki sposób osiągnąć te dwa cele:

1) pozwala użytkownikowi nagrać jakieś dane, że tylko oni mogą zobaczyć. Następnie zapisz to, gdy zdecydujesz się utworzyć konto. 2) Umożliwienie użytkownikowi zarejestrowania niektórych danych, które nie znikają podczas sesji. Następnie zapisz te dane, gdy zdecydują się utworzyć konto.

Odpowiedz

2

Jeśli używasz menedżer pakietów meteoryt można użyć wtyczki rachunkach-anonimowe https://github.com/tmeasday/meteor-accounts-anonymous

to tylko dwa małe pliki więc można też po prostu dodaje się bezpośrednio do projektu.

A następnie po zalogowaniu transefer użytkownika informacje ponad.

+0

Dzięki Adrian - oddam to. Jak radzisz sobie z ponownym pisaniem od anonimowego do zalogowania? – James

+1

wtyczka zapisuje identyfikator użytkownika w localstorage.get ("Meteor.userId"), więc po prostu wywołuję inną stronę klienta metody, aby pobrać użytkownika z bazy danych. Meteor.users.find (userid) – adrianj98

+0

ta wtyczka jest nieco przestarzała. ponieważ nie jest już kontem Meteor, ale konta teraz. – adrianj98

Powiązane problemy