2012-12-12 17 views
7

mam unikalny przepływ tworzenia użytkownika, który przedstawia się następująco:Tworzenie użytkownika bez hasła w Meteor

  1. Użytkownik nie przychodzi do mojej strony po raz pierwszy i kliknięciu przycisku.
  2. Utworzyć dla nich użytkownika w bazie danych i ustawić klucz localStorage z identyfikatorem UID.
  3. Użyj chodzi o tworzenie danych i zapisuję dane w DB i kojarzę je z UID.
  4. Użytkownik wraca, a jeśli mają ustawiony UID w localStorage, pokazuję im dane, które wcześniej utworzyli.
  5. Użytkownik może kliknąć opcję Zarejestruj, aby utworzyć "prawdziwe" konto, od którego będą musieli zalogować się przy użyciu nazwy użytkownika i hasła lub innej usługi (np. Facebook).

Jak to zrobić z kontami Meteor i modelem użytkownika?

W skrócie:

  • trzeba utworzyć dokument Mongo użytkownika bez informacji (o użytkowniku).
  • Potrzebuję uwierzytelnić użytkownika po prostu mając identyfikator UID (działający jako "hasło").

Odpowiedz

1

Nie wiem, jak pomóc przy uwierzytelnianiu, ale co do tworzenia pustego obiektu użytkownika, z powodzeniem wykonałem następujące czynności po stronie serwera (o innej nazwie ...):

Meteor.users.insert({profile: {name: 'Oompa Loompa'}, foo: 'bar'});

8
  1. Rejestru onCreateUser dodać pole "anonimowy" ({anonymous:1}) gdy stosuje się losowo wygenerowanego hasła, może z Meteor.uuid().
  2. Dodaj pole datownika ({created:new Date()}), aby wyczyścić stare, anonimowe konta.
  3. Wykonać konserwację starego anonimowego użytkownika, jak usuwanie anonimowych użytkowników więcej niż jedną godzinę Wiek: Meteor.autorun(function() {Meteor.users.find({anonymous:1,$where:"new Date() - this.created > 360000"}).forEach(function (user) {
    Meteor.users.remove({_id:user._id})}});
  4. Na kliencie: „pseudonim”
    1. zawsze szybka dla To stanie się oficjalną nazwą użytkownika lub będzie zasiadać w systemie na zawsze używany.
    2. Sprawdź, czy klient jest zalogowany. Jeśli nie jest to , utwórz użytkownika z pseudonimem i hasłem "magic number", , który się zaloguje. Po kliknięciu przycisku rejestru wpisz "Register" na górze , ale w rzeczywistości zmienić swoje hasło i $set:{anonymous:0}

nie używaj localStorage, a nie używać UID. Plik cookie sesji to Twój UID.

+0

Dlaczego nie powinienem używać localStorage? – Gezim

+0

Powinieneś używać localStorage, po prostu nie przechowywać czegoś takiego jak UID. 'meteor-accounts' już zajmuje się aspektem cookie/token /" UID "tego, co próbujesz osiągnąć. Ale, nie pozwól mi zniechęcić cię do napisania własnego pakietu, który robi dokładnie to, co chcesz. Rozważ sprawdź kod 'meteor-accounts' i zastanów się, jak zaimplementować anonimowego użytkownika. Pozwoliłbym, aby użytkownicy byli tworzeni bez nazw użytkowników, a ja dodałbym anonimowe pole z funkcją opisaną powyżej. Odnosi się do głównego ograniczenia mojego rozwiązania: musisz zacząć od pseudonimu. – DoctorPangloss

+0

Czy możesz wyjaśnić, co masz na myśli przez "magiczną liczbę" w tym kontekście? Czy mówisz, że należy wybrać liczbę losową, aby zarejestrować anonimowy? Czy jest to programowo wygenerowana "magiczna liczba"? – Chanpory

Powiązane problemy