UNPKG

sails-police

Version:

Simple and flexible authentication workflows for sails

99 lines (82 loc) 2.41 kB
var _ = require('lodash'); var path = require('path'); var passport = require('passport'); var HttpUtils = require(path.join(__dirname, 'helpers')); /** * @function * @author lykmapipo * * @description implementation of signup workflows */ function SignUp() {}; /** * @function * @author lykmapipo * * @description handle and process Http GET /signup * @param {HttpRequest} request * @param {HttpResponse} response */ SignUp.prototype.getSignup = function(request, response) { //TODO handle rest/api calls //prepare response //data var credentials = { username: '', email: '', password: '' }; var data = _.extend({ title: 'Sign up', }, credentials, HttpUtils.messages(request) ); //render response response .view('auth/signup', data); }; /** * @function * @author lykmapipo * * @description handle and process Http POST /signup * @param {HttpRequest} request * @param {HttpResponse} response */ SignUp.prototype.postSignup = function(request, response) { //TODO handle rest/api calls //extract credentials from the request body var credentials = { email: request.body.email, username: request.body.username, password: request.body.password }; //register credentials require('sails-police') .getUser() .register(credentials, function(error, registerable) { if (error) { //if any error encountered during //registering credentials //log it and flash error message //and redirect user to signup sails.log(error); sails.emit('registerable::register::error', error); request.flash('error', error.message); response.redirect('/signup'); } else { //if registeration is successfully //flash success message //and redirect user to signin sails.log(registerable); sails.emit('registerable::register::success', registerable); request.flash('success', 'Signup successfully. Check your email for confirmation'); response.redirect('/signin'); } }); }; /** * @description export signup singleton * @type {SignUp} */ exports = module.exports = new SignUp();