Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. const passport = require("passport");
  2. const LocalStrategy = require("passport-local").Strategy;
  3. const User = require("../models/User");
  4. const express = require("express");
  5.  
  6. const router = express.Router();
  7.  
  8. module.exports = (io) => {
  9. io.on("connect", (socket) => {
  10. passport.use(
  11. new LocalStrategy((username, password, done) => {
  12. User.getUserByUsername(username, (err, user) => {
  13. if (err) throw err;
  14. if (!user) {
  15. return done(null, false, { message: "Niepoprawny login lub hasło" });
  16. }
  17.  
  18. User.comparePassword(password, user.password, (err, isMatch) => {
  19. if (err) throw err;
  20. if (isMatch) {
  21. return done(null, user);
  22. }
  23. return done(null, false, { message: "Niepoprawny login lub hasło" });
  24. });
  25. });
  26. })
  27. );
  28.  
  29. passport.serializeUser((user, done) => {
  30. done(null, user.id);
  31. });
  32.  
  33. passport.deserializeUser((id, done) => {
  34. User.getUserById(id, (err, user) => {
  35. done(err, user);
  36. });
  37. });
  38.  
  39. router.get("/createadmin", (_req, res) => {
  40. User.findOne(
  41. {
  42. username: "admin"
  43. },
  44. (_err, user) => {
  45. if (user) {
  46. res.status(200).send("OK");
  47. }
  48. else {
  49. let newUser = new User({
  50. username: "administrator",
  51. password:
  52. "$2y$12$GlsWA92yzaErHSKv.6HXeeSv0wBVt7Xeoi0hGhFozFjWZ9ROp3QuK"
  53. });
  54. User.createUser(newUser, (err, user) => {
  55. if (err) throw err;
  56. console.log(user);
  57. });
  58. res.status(200).send("OK");
  59. }
  60. }
  61. );
  62. });
  63.  
  64.  
  65. router.post("/login", (req, res, next) => {
  66. passport.authenticate("local", (err, user, info) => {
  67. req.logIn(user, (err) => {
  68. res.send(user);
  69. });
  70. })(req, res, next);
  71. });
  72.  
  73.  
  74. router.get("/logout", (req, res) => {
  75. req.logout();
  76. res.send(false);
  77. });
  78.  
  79.  
  80. router.get("/user", (req, res) => {
  81. res.status(200).json(req.user);
  82. });
  83. });
  84.  
  85.  
  86. return router;
  87. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement