Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. await server.register(require('hapi-auth-jwt2'));
  2.  
  3. server.auth.strategy('jwt', 'jwt', {
  4. key: 'NeverShareYourSecret',
  5. validate: validate,
  6. verifyOptions: { algorithms: ['HS256'] }
  7. });
  8. server.auth.default('jwt');
  9.  
  10. method: 'POST',
  11. path: '/login',
  12. config: { auth: false },
  13. handler: async function(req, h) {
  14. try {
  15. let { username, password } = req.payload;
  16. let student = await student.findOne({
  17. username
  18. });
  19. let validUser = student && (await bcrypt.compareSync(password,student.password));
  20.  
  21. if (validUser) {
  22. let token = jwt.sign({ id: user.id }, 'mysecretkey');
  23. console.log('tpken'+token);
  24. // return h.view('welcome');
  25. return { token };
  26. } else {
  27. return boom.unauthorized('incorrect pass');
  28. }
  29. }
  30. }
  31.  
  32. method: 'POST',
  33. path: '/student',
  34. config: { auth: false },
  35. handler: async function(req, h) {
  36. try {
  37. let salt = bcrypt.genSaltSync(10);
  38. req.payload.password = bcrypt.hashSync(req.payload.password, salt);
  39.  
  40. let student = new User(req.payload);
  41. let result = await student.save();
  42. const expiresIn = 24 * 60 * 60;
  43. let token = jwt.sign({ id: result.id }, 'mysecretkey',{ expiresIn: expiresIn
  44. });
  45. return {token} ;
  46.  
  47. }
  48. }
  49.  
  50. {
  51. method: 'GET',
  52. path: '/register',
  53. config: { auth: 'jwt' },
  54. handler: async (request, h) => {
  55. try {
  56. return h.view('student');
  57. } catch(err){
  58. return h.response(err).code(500);
  59. }
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement