Ricerca…


Pacchetto di account Meteor

Hai alcune opzioni quando devi loggarti con Meteor. Il metodo più comune è l'utilizzo di accounts per Meteor.

Conti-Password

Se vuoi che gli utenti siano in grado di creare e registrarti sul tuo sito, puoi usare accounts-password .

Installa il pacchetto usando gli meteor add accounts-password .

Per creare un utente, è necessario utilizzare Accounts.createUser(options, [callback])

options devono essere un oggetto con le seguenti proprietà:

  • username : il username utente dell'utente come stringa ..
  • email : l' email dell'utente come stringa.
  • password : la password dell'utente (non crittografata) come stringa.
  • profile : i dati extra facoltativi dell'utente come oggetto. Questo può essere ad esempio il nome e il cognome dell'utente. profile è facoltativo, tuttavia.

Il callback restituisce 1 variabile se c'è un errore, che è un oggetto Meteor.Error.

Ti viene richiesto solo di utilizzare il username o l' email - email , in modo da poter creare un utente con nome utente ma senza e-mail e viceversa. Puoi anche usare entrambi.

Restituisce l'ID utente appena creato se tutto è andato a buon fine.

Quindi, per esempio puoi usare questo:

// server side
var id = Accounts.createUser({
    username: "JohnDoe",
    email: "[email protected]",
    password: "TheRealJohn123",
    profile: {
        firstName: "John",
        lastName: "Doe"
    }
}, function(err) {
    console.log(err.reason);
});

L'accesso verrà eseguito automaticamente anche se l'utente è stato creato correttamente.

Questa è la parte creatrice. Per accedere è necessario utilizzare Meteor.loginWithPassword(identifier, password, [callback]) sul lato client.

identifier è il username , email o userId come una stringa dal vostro utente. password è il (non criptato) password dell'utente.

Il callback restituisce una variabile se c'è un errore, che è un oggetto Meteor.Error.

Esempio:

// client side
Meteor.loginWithPassword("JohnDoe", "TheRealJohn123", function(err) {
    console.log(err.reason);
});

E questo è per la creazione di base di account e l'accesso.

Accesso ai dati dell'utente

È possibile controllare sul lato client se l'utente ha effettuato l'accesso chiamando Meteor.userId() che restituirà i propri userId se sono connessi e undefined se non sono connessi.

Puoi ottenere alcune informazioni da Meteor.user() . Restituirà undefined se l'utente non ha effettuato l'accesso e alcuni dati utente se lo sono. Di default non ti darà alcuna password, per impostazione predefinita mostrerà l'ID utente dell'utente, il nome utente e l'oggetto profilo.

Se si desidera verificare se un utente ha effettuato l'accesso su una pagina, è possibile utilizzare anche l'helper Utente currentUser . Restituirà il contenuto di Meteor.user() . Esempio:

{{#if currentUser}}
    <h1>Hello there, {{currentUser.username}}!</h1>
{{else}}
    <h1>Please log in.</h1>
{{/if}}

Altre funzioni di account

Ci sono alcune altre funzioni che funzionano per ogni pacchetto di account.

È possibile disconnettersi utilizzando Meteor.logout()

Non utilizzare il campo del profilo predefinito

C'è un campo esistente allettante chiamato profile che viene aggiunto di default quando un nuovo utente si registra. Questo campo è stato storicamente concepito per essere utilizzato come un blocco per i dati specifici dell'utente, ad esempio il loro avatar immagine, nome, testo introduttivo, ecc. Per questo motivo, il campo profile su ogni utente è automaticamente scrivibile dall'utente dal client . Viene anche automaticamente pubblicato sul client per quel particolare utente.

Si scopre che avere un campo scrivibile di default senza renderlo super ovvio potrebbe non essere la migliore idea. Ci sono molte storie di nuovi sviluppatori di Meteor che memorizzano campi come isAdmin sul profile ... e quindi un utente malintenzionato può facilmente impostarlo su true ogni volta che lo desidera, diventando un amministratore. Anche se non sei preoccupato per questo, non è una buona idea lasciare che gli utenti malintenzionati memorizzino quantità arbitrarie di dati nel tuo database.

Piuttosto che affrontare le specifiche di questo campo, può essere utile ignorare completamente la sua esistenza. Puoi tranquillamente farlo finché neghi tutte le scritture dal client:

// Deny all client-side updates to user documents
Meteor.users.deny({
  update() { return true; }
});

Anche ignorando le implicazioni di sicurezza del profilo, non è una buona idea mettere tutti i dati personalizzati della tua app su un campo. Il protocollo di trasferimento dei dati di Meteor non diffonde profondamente i campi, quindi è una buona idea appiattire gli oggetti in molti campi di livello superiore del documento.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow