Advertisement
Guest User

Untitled

a guest
Apr 20th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. var crypto = require('crypto');// 암호화를 위한 모듈
  2. var mongoose = require('mongoose'),
  3. User = mongoose.model('User');
  4.  
  5. function hashPW(pwd){
  6. // 비밀번호 단방향 암호화
  7. return crypto.createHash('sha256').update(pwd).digest('base64').toString();
  8. }
  9.  
  10. /* 회원가입 */
  11. exports.signup = function(req, res){
  12.  
  13. console.log(req.body);
  14. // req.body.email = ''
  15. // req.body.password = ''
  16.  
  17. // 새로운 사용자 등록
  18. var newUser = new User({ email: req.body.email });
  19. newUser.set('username', req.body.username);
  20. newUser.set('password', hashPW(req.body.password));
  21.  
  22. User.findOne({ email: req.body.email }).exec(function(err, user) {
  23.  
  24. if(err){
  25. req.session.regenerate(function(){
  26. req.session.msg = '서버 접속에 문제가 생겼습니다.';
  27. res.redirect('/login');
  28. });
  29. }
  30. else {
  31.  
  32. if (user) {
  33. // 사용자 중복 검사
  34. req.session.regenerate(function(){
  35. req.session.msg = '해당 이메일과 일치하는 사용자가 존재합니다.';
  36. res.redirect('/signup');
  37. });
  38. }
  39. else {
  40. // 사용자 DB 에 저장
  41. newUser.save(function(err) {
  42. if (err) {
  43. req.session.regenerate(function(){
  44. req.session.msg = '서버 접속에 문제가 생겼습니다.';
  45. res.redirect('/login');
  46. });
  47. }
  48. else {
  49. req.session.user = newUser.id;
  50. req.session.username = newUser.email;
  51. req.session.msg = newUser.email + ' 의 계정으로 로그인되었습니다.';
  52. res.redirect('/');
  53. }
  54. });
  55.  
  56. }
  57.  
  58. }
  59. });
  60. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement