2016-03-21 9 views
1

Dies ist meine Strategie, die auf einem server.register() definiert ist. Ich basiere meine Arbeit auf einem Tutorial und es wird buchstäblich davon kopiert, aber es funktioniert nicht.request.auth.session.set (user_info) funktioniert nicht HapiJS

server.auth.strategy('standard', 'cookie', { 
     password: 'somecrazycookiesecretthatcantbeguesseswouldgohere', // cookie secret 
     cookie: 'app-cookie', // Cookie name 
     isSecure: false, // required for non-https applications 
     redirectTo: '/login', 
     ttl: 24 * 60 * 60 * 1000 // Set session to 1 day 
    }); 

    server.auth.default({ 
     strategy: 'standard', 
     mode: 'required', 
     scope: ['admin'] 
    }); 

Dies ist die Anmeldungs ​​Route, wo der Fehler auftritt:

server.route({ 
    method: 'POST', 
    path: '/login', 
    config: { 
     auth: false, 
     validate: { 
      payload: { 
       email: Joi.string().email().required(), 
       password: Joi.string().min(2).max(200).required() 
      } 
     }, 
     handler: function (request, reply) { 

      getValidatedUser(request.payload.email, request.payload.password) 
        .then(function (user) { 

         if (user) { 
          //ERROR OCCURS HERE: IT SAYS SESSION IS UNDEFINED 
          request.auth.session.set(user); 
          return reply('Login Successful!'); 
         } else { 
          return reply(Boom.unauthorized('Bad email or password')); 
         } 

        }); 
//      .catch(function (err) { 
//       return reply(Boom.badImplementation()); 
//      }); 

     } 
    } 
}); 

Ich habe so viele Dinge ausprobiert, aber dieser Teil für diese Arbeit von entscheidender Bedeutung ist, und ich kann nicht jemand mit dem gleichen Problem finden . Hilfe bitte!

+0

„Funktioniert nicht“ ist nicht genug Informationen für Menschen, Ihnen zu helfen. Was ist passiert, was hast du erwartet? Hast du Fehlermeldungen gesehen? Was haben sie gesagt? –

+0

Es ist gelöst, es funktioniert nicht mehr auf die gleiche Weise, überprüfe @mcmo's Antwort – Forget

Antwort

6

hapi-auth-cookie hat die Einstellung und Löschung von Cookies geändert. Verwenden Sie ab Version 5.0.0 request.cookieAuth.set() und request.cookieAuth.clear(). Sie verwenden wahrscheinlich eine neuere Version des Plugins als in der package.json des Tutorials verwendet.

Quelle: https://github.com/hapijs/hapi-auth-cookie/commit/d233b2a3e4d0f03ef53b91b7929b8dbadbff624c

+0

Yup, ich habe ihre Dokumente danach überprüft und so habe ich es gelöst! Danke trotzdem, es ist die Antwort, also werde ich es als solche markieren! – Forget