Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var passport = require('passport');
- var localStrategy = require('passport-local' ).Strategy;
- // configure passport
- passport.use(new localStrategy(User.authenticate()));
- passport.serializeUser(User.serializeUser());
- passport.deserializeUser(User.deserializeUser());
- var User = new Schema({
- email: String,
- password: String
- });
- router.post('/register', function(req, res) {
- User.register(new User({ email: req.body.email }),
- req.body.password, function(err, user) {
- if (err) {
- return res.status(500).json({
- err: err
- });
- }
- passport.authenticate('local')(req, res, function () {
- return res.status(200).json({
- status: 'Registration successful!'
- });
- });
- });
- });
- $scope.register = function () {
- // initial values
- $scope.error = false;
- $scope.disabled = true;
- // call register from service
- AuthService.register($scope.user.email, $scope.user.password)
- // handle success
- .then(function () {
- $location.path('/login');
- $scope.disabled = false;
- $scope.user = {};
- })
- // handle error
- .catch(function () {
- $scope.error = true;
- $scope.errorMessage = "Something went wrong!";
- $scope.disabled = false;
- $scope.user = {};
- });
- };
- app.factory('AuthService',
- ['$q', '$timeout', '$http',
- function ($q, $timeout, $http) {
- // create user variable
- var user = null;
- // return available functions for use in the controllers
- return ({
- isLoggedIn: isLoggedIn,
- getUserStatus: getUserStatus,
- login: login,
- logout: logout,
- register: register
- });
- function isLoggedIn() {
- if(user) {
- return true;
- } else {
- return false;
- }
- }
- function getUserStatus() {
- return $http.get('/user/status')
- // handle success
- .success(function (data) {
- if(data.status){
- user = true;
- } else {
- user = false;
- }
- })
- // handle error
- .error(function (data) {
- user = false;
- });
- }
- function register(email, password) {
- // create a new instance of deferred
- var deferred = $q.defer();
- // send a post request to the server
- $http.post('/user/register',
- {email: email, password: password})
- // handle success
- .success(function (data, status) {
- if(status === 200 && data.status){
- deferred.resolve();
- } else {
- deferred.reject();
- }
- })
- // handle error
- .error(function (data) {
- deferred.reject();
- });
- // return promise object
- return deferred.promise;
- }
- }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement