Toegang tot sessie in everyauth.password?

Ik werk aan een knooppunt-uitdrukkelijke app en ik heb het al goed gedaan met de Facebook-authenticatie. Ik probeer nu onze eigen e-mailadres/wachtwoord in te schakelen en deze naar een wegversperring te leiden. Met Facebook heb ik toegang tot de sessie en schrijf ik deze tijdens de autorisatie:

everyauth.faceboook
   //Basic stuff
    .findOrCreateUser( function( sess, accessToken, extra, fbUser) {
        var promise = this.Promise();
        sess.myvar = myvar

       //Find user in DB, etc
        promise.fulfill(fbUser);
        return promise()

Dit werkt prima, want ik kan wat spullen bewaren die ik later in deze sessie nodig heb voor de sessie. Maar ik weet niet zeker hoe ik hetzelfde moet doen als ik elke wachtwoord-login gebruik:

everyauth.password
   //Basic stuff
    .authenticate( function(email, password) {
        var promise = this.Promise();             
       //Create new user in DB, etc

       //Now I need to save stuff to the session but I'm not sure how to access
       //it in here...
        promise.fulfill(newUser)
        return promise

Dus is er een manier om toegang te krijgen tot de sessie in de authenticatie- en login-methoden (die dezelfde API gebruiken) van everyauth.password?

1

1 antwoord

U hebt geen toegang tot de sessie via uw .authenticate -functie en wat u hier probeert te doen, voelt verkeerd. Uw .authenticate -functie zou simpelweg de gebruiker moeten opzoeken door de parameter login , waarbij wordt bevestigd dat de parameter wachtwoord overeenkomt met het wachtwoord van de gebruiker en vervolgens de gebruikersobject voor die gebruiker via de callback. Als u everyauth wilt gebruiken om ook gebruikers te maken, zou u de functies .validateRegistration en .registerUser moeten gebruiken.

0
toegevoegd
Nee, je kan het niet. Dus dat is een goed teken dat wat u probeert te doen een beetje ongewoon is. Mogelijk moet u uw eigen .addToSession -functie implementeren die de standaardfuncties uitvoert en alles wat u ook nog moet doen. Wat bewaart u in de sessie dat alleen kan worden vastgesteld tijdens het maken van de gebruiker?
toegevoegd de auteur JohnnyHK, de bron
Rechts - het plaatsen van die informatie in het gebruikersobject zou de typische manier zijn om hiermee om te gaan.
toegevoegd de auteur JohnnyHK, de bron
Oke, dankje. Ik misbruik de authenticatiefunctie nu absoluut en zal dat veranderen. Maar als ik .registerUser wil gebruiken om een ​​nieuwe gebruiker aan te maken - kan ik daar tenminste de sessie binnengaan?
toegevoegd de auteur BlueMoon, de bron
In principe was ik van plan om een ​​vlag in de sessie op te slaan die aangeeft of de gebruiker een nieuwe is (dat wil zeggen die net is geregistreerd) of een terugkerende gebruiker. Ik denk dat de betere manier om dit te doen, gebaseerd op wat je hebt gezegd, waarschijnlijk dat in het gebruikersmodel zelf zal opslaan, en dan kan ik er toegang toe via req.user op de volgende pagina wanneer ik moet bepalen om de nieuwe gebruikersstroom of niet.
toegevoegd de auteur BlueMoon, de bron