Advertisement
Guest User

Untitled

a guest
Jun 10th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. module.exports = function (app, passport) {
  2.  
  3. // show the index page
  4. app.get('/', function (req, res) {
  5. res.render('index.ejs');
  6. });
  7.  
  8. // USERSPAGE SECTION =========================
  9. app.get('/userspage', isLoggedIn, function (req, res) {
  10. res.render('userspage.ejs', {
  11. user: req.user,
  12. message: req.flash('進入使用者操作畫面')
  13. });
  14. });
  15.  
  16. // LOGOUT SECTION==============================
  17. app.get('/logout', function (req, res) {
  18. req.logout();
  19. res.redirect('/index.ejs');
  20. });
  21.  
  22.  
  23.  
  24. // LOGIN ===============================
  25. // show the login form
  26. app.get('/login', function (req, res) {
  27. res.render('login.ejs', {
  28. message: req.flash('登入訊息')
  29. });
  30. });
  31.  
  32. // process the login form
  33. app.post('/login', passport.authenticate('local-login', {
  34. successRedirect: '/userspage',
  35. failureRedirect: '/login',
  36. failureFlash: true
  37. }));
  38.  
  39. // SIGNUP =================================
  40. // show the signup form
  41. app.get('/signup', function (req, res) {
  42. res.render('signup.ejs', {
  43. message: req.flash('註冊訊息')
  44. });
  45. });
  46.  
  47.  
  48. // process the signup form
  49. app.post('/signup', passport.authenticate('local-signup', {
  50. successRedirect: '/userspage',
  51. failureRedirect: '/signup',
  52. failureFlash: true
  53. }));
  54.  
  55. // facebook -------------------------------
  56.  
  57.  
  58. app.get('/auth/facebook', passport.authenticate('facebook', {
  59. scope: 'email'
  60. }));
  61.  
  62.  
  63. app.get('/auth/facebook/callback',
  64. passport.authenticate('facebook', {
  65. successRedirect: '/userspage',
  66. failureRedirect: '/signup'
  67. }));
  68.  
  69. // twitter --------------------------------
  70.  
  71.  
  72. app.get('/auth/twitter', passport.authenticate('twitter', {
  73. scope: 'email'
  74. }));
  75.  
  76.  
  77. app.get('/auth/twitter/callback',
  78. passport.authenticate('twitter', {
  79. successRedirect: '/userspage',
  80. failureRedirect: '/signup'
  81. }));
  82.  
  83.  
  84. // google ---------------------------------
  85.  
  86.  
  87. app.get('/auth/google', passport.authenticate('google', {
  88. scope: ['userspage', 'email']
  89. }));
  90.  
  91.  
  92. app.get('/auth/google/callback',
  93. passport.authenticate('google', {
  94. successRedirect: '/userspage',
  95. failureRedirect: '/signup'
  96. }));
  97.  
  98. // AUTH -----------------------------------
  99.  
  100. // locally --------------------------------
  101. app.get('/connect/local', function (req, res) {
  102. res.render('connect-local.ejs', {
  103. message: req.flash('登入訊息')
  104. });
  105. });
  106. app.post('/connect/local', passport.authenticate('local-signup', {
  107. successRedirect: '/userspage',
  108. failureRedirect: '/signup',
  109. failureFlash: true
  110. }));
  111.  
  112. // facebook -------------------------------
  113.  
  114.  
  115. app.get('/connect/facebook', passport.authorize('facebook', {
  116. scope: 'email'
  117. }));
  118.  
  119.  
  120. app.get('/connect/facebook/callback',
  121. passport.authorize('facebook', {
  122. successRedirect: '/userspage',
  123. failureRedirect: '/signup'
  124. }));
  125.  
  126. // twitter --------------------------------
  127.  
  128.  
  129. app.get('/connect/twitter', passport.authorize('twitter', {
  130. scope: 'email'
  131. }));
  132.  
  133.  
  134. app.get('/connect/twitter/callback',
  135. passport.authorize('twitter', {
  136. successRedirect: '/userspage',
  137. failureRedirect: '/signup'
  138. }));
  139.  
  140.  
  141. // google ---------------------------------
  142.  
  143.  
  144. app.get('/connect/google', passport.authorize('google', {
  145. scope: ['userspage', 'email']
  146. }));
  147.  
  148.  
  149. app.get('/connect/google/callback',
  150. passport.authorize('google', {
  151. successRedirect: '/userspage',
  152. failureRedirect: '/signup'
  153. }));
  154.  
  155.  
  156. // 連結用戶===================================
  157.  
  158.  
  159. // local -----------------------------------
  160. app.get('/unlink/local', isLoggedIn, function (req, res) {
  161. var user = req.user;
  162. user.local.email = undefined;
  163. user.local.password = undefined;
  164. user.local.username = undefined;
  165. user.local.birthday = undefined;
  166. user.local.sex = undefined;
  167. user.save(function (err) {
  168. res.redirect('/userspage');
  169. });
  170. });
  171.  
  172. // facebook -------------------------------
  173. app.get('/unlink/facebook', isLoggedIn, function (req, res) {
  174. var user = req.user;
  175. user.facebook.token = undefined;
  176. user.save(function (err) {
  177. res.redirect('/userspage');
  178. });
  179. });
  180.  
  181. // // twitter --------------------------------
  182. app.get('/unlink/twitter', isLoggedIn, function (req, res) {
  183. var user = req.user;
  184. user.twitter.token = undefined;
  185. user.save(function (err) {
  186. res.redirect('/userspage');
  187. });
  188. });
  189.  
  190. // google ---------------------------------
  191. app.get('/unlink/google', isLoggedIn, function (req, res) {
  192. var user = req.user;
  193. user.google.token = undefined;
  194. user.save(function (err) {
  195. res.redirect('/userspage');
  196. });
  197. });
  198.  
  199.  
  200. };
  201.  
  202.  
  203. function isLoggedIn(req, res, next) {
  204.  
  205.  
  206. if (req.isAuthenticated())
  207. return next();
  208.  
  209.  
  210. res.redirect('/');
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement