Advertisement
Guest User

Untitled

a guest
Oct 30th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. - loginApp
  2. -client/
  3. -app/
  4. -images/
  5. ------- scripts/
  6. ------- styles/
  7. ------- views/
  8. ------ dashboard.html
  9. ------ home.html
  10. ------ login.html
  11. ------ register.html
  12. ------ partials/
  13. ------- index.html
  14. ---------- bower_components
  15. ---------- bower.json
  16. ----- models/
  17. ---------- user.js
  18. ----- routes/
  19. ---------- index.js
  20. ---------- users.js
  21. - node_modules/
  22. - package.json
  23. - app.js
  24.  
  25. angular.module('app').factory('AuthenticationService',
  26. ['$q', '$timeout', '$http',
  27. function ($q, $timeout, $http) {
  28.  
  29. // create user variable
  30. var user = null;
  31.  
  32. // return available functions for use in the controllers
  33. return ({
  34. isLoggedIn: isLoggedIn,
  35. getUserStatus: getUserStatus,
  36. login: login,
  37. logout: logout,
  38. register: register
  39. });
  40.  
  41. function isLoggedIn() {
  42. if(user) {
  43. return true;
  44. } else {
  45. return false;
  46. }
  47. }
  48.  
  49. function getUserStatus() {
  50. return $http.get('/user/status')
  51. // handle success
  52. .success(function (data) {
  53. if(data.status){
  54. user = true;
  55. } else {
  56. user = false;
  57. }
  58. })
  59. // handle error
  60. .error(function (data) {
  61. user = false;
  62. });
  63. }
  64.  
  65. function login(username, password) {
  66.  
  67. // create a new instance of deferred
  68. var deferred = $q.defer();
  69.  
  70. // send a post request to the server
  71. $http.post('/users/login',
  72. {username: username, password: password})
  73. // handle success
  74. .success(function (data, status) {
  75. if(status === 200 && data.status){
  76. user = true;
  77. deferred.resolve();
  78. } else {
  79. user = false;
  80. deferred.reject();
  81. }
  82. })
  83. // handle error
  84. .error(function (data) {
  85. user = false;
  86. deferred.reject();
  87. });
  88.  
  89. // return promise object
  90. return deferred.promise;
  91.  
  92. }
  93.  
  94. function logout() {
  95.  
  96. // create a new instance of deferred
  97. var deferred = $q.defer();
  98.  
  99. // send a get request to the server
  100. $http.get('/user/logout')
  101. // handle success
  102. .success(function (data) {
  103. user = false;
  104. deferred.resolve();
  105. })
  106. // handle error
  107. .error(function (data) {
  108. user = false;
  109. deferred.reject();
  110. });
  111.  
  112. // return promise object
  113. return deferred.promise;
  114.  
  115. }
  116.  
  117. function register(username, password) {
  118.  
  119. // create a new instance of deferred
  120. var deferred = $q.defer();
  121.  
  122. // send a post request to the server
  123. $http.post('/user/register',
  124. {username: username, password: password})
  125. // handle success
  126. .success(function (data, status) {
  127. if(status === 200 && data.status){
  128. deferred.resolve();
  129. } else {
  130. deferred.reject();
  131. }
  132. })
  133. // handle error
  134. .error(function (data) {
  135. deferred.reject();
  136. });
  137.  
  138. // return promise object
  139. return deferred.promise;
  140.  
  141. }
  142.  
  143. }]);
  144.  
  145. angular.module('app')
  146. .controller('LoginCtrl', ['$scope', '$location', '$state', 'AuthenticationService', function($scope, $state, $location, AuthenticationService) {
  147.  
  148. $scope.login = function () {
  149.  
  150. // initial values
  151. $scope.error = false;
  152. $scope.disabled = true;
  153.  
  154. // call login from service
  155. AuthenticationService.login($scope.loginForm.username, $scope.loginForm.password)
  156. // handle success
  157. .then(function () {
  158. $location.path('/');
  159. $scope.disabled = false;
  160. $scope.loginForm = {};
  161. $state.go('home.dashboard');
  162. })
  163. // handle error
  164. .catch(function () {
  165. $scope.error = true;
  166. $scope.errorMessage = "Invalid username and/or password";
  167. $scope.disabled = false;
  168. $scope.loginForm = {};
  169. });
  170.  
  171. };
  172. }]);
  173.  
  174. <div ng-controller="LoginCtrl" ng-cloak="" class="md-inline-form" ng-app="app">
  175. <form class="form" ng-submit="login()">
  176. <div>
  177. <label>Username</label>
  178. <input name="username" ng-model="loginForm.username">
  179.  
  180. <label>Password</label>
  181. <input name="password" ng-model="loginForm.password" type="password">
  182. </div>
  183. <button type="submit">Login</button>
  184. </form>
  185. </div>
  186.  
  187. var express = require('express');
  188. var path = require('path');
  189. var cookieParser = require('cookie-parser');
  190. var bodyParser = require('body-parser');
  191. var exphbs = require('express-handlebars');
  192. var expressValidator = require('express-validator');
  193. var flash = require('connect-flash');
  194. var session = require('express-session');
  195. var passport = require('passport');
  196. var LocalStrategy = require('passport-local').Strategy;
  197. var mongo = require('mongodb');
  198. var mongoose = require('mongoose');
  199. var html = require('html');
  200.  
  201. mongoose.connect('mongodb://localhost/loginapp');
  202. var db = mongoose.connection;
  203.  
  204. var routes = require('./routes/index');
  205. var users = require('./routes/users');
  206.  
  207. // Init App
  208. var app = express();
  209.  
  210. // View Engine
  211. app.set('view engine', 'html');
  212. app.set('views', path.join(__dirname, '/client/app/views'));
  213. //app.engine('handlebars', exphbs({defaultLayout:'index'}));
  214. //app.set('view engine', 'handlebars');
  215. //app.set('views', path.join(__dirname, 'views'));
  216.  
  217. app.use('/bower_components', express.static('client/bower_components/'));
  218.  
  219. // app.engine('handlebars', exphbs({defaultLayout:'layout'}));
  220. // app.set('view engine', 'handlebars');
  221.  
  222. // BodyParser Middleware
  223. app.use(bodyParser.json());
  224. app.use(bodyParser.urlencoded({ extended: false }));
  225. app.use(cookieParser());
  226.  
  227. // Set Static Folder
  228. app.use(express.static(path.join(__dirname, 'client/app')));
  229.  
  230. // Express Session
  231. app.use(session({
  232. secret: 'secret',
  233. saveUninitialized: true,
  234. resave: true
  235. }));
  236.  
  237. // Passport init
  238. app.use(passport.initialize());
  239. app.use(passport.session());
  240.  
  241. // Express Validator
  242. app.use(expressValidator({
  243. errorFormatter: function(param, msg, value) {
  244. var namespace = param.split('.')
  245. , root = namespace.shift()
  246. , formParam = root;
  247.  
  248. while(namespace.length) {
  249. formParam += '[' + namespace.shift() + ']';
  250. }
  251. return {
  252. param : formParam,
  253. msg : msg,
  254. value : value
  255. };
  256. }
  257. }));
  258.  
  259. // Connect Flash
  260. app.use(flash());
  261.  
  262. // Global Vars
  263. app.use(function (req, res, next) {
  264. res.locals.success_msg = req.flash('success_msg');
  265. res.locals.error_msg = req.flash('error_msg');
  266. res.locals.error = req.flash('error');
  267. res.locals.user = req.user || null;
  268. next();
  269. });
  270.  
  271. app.get('/', function(req, res) {
  272. res.sendFile(path.join(__dirname, '../client/app', 'index.html'));
  273. });
  274.  
  275. //app.use('/', routes);
  276. app.use('/users', users);
  277.  
  278. // Set Port
  279. app.set('port', (process.env.PORT || 3000));
  280.  
  281. app.listen(app.get('port'), function(){
  282. console.log('Server started on port '+app.get('port'));
  283. });
  284.  
  285. router.get('/login', function(req, res){
  286. res.sendFile(__dirname + '/login.html');
  287. //res.render('login');
  288. });
  289.  
  290. router.post('/login',
  291. passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
  292. function(req, res) {
  293. res.sendFile(__dirname + '/home.html');
  294. });
  295.  
  296. Error: ENOENT: no such file or directory, stat '/loginapp/routes/login.html'
  297. at Error (native)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement