Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

validatesession.js 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict'
  2. const { plugin } = require('@hapi/inert')
  3. const Joi = require('joi')
  4. const pluginConfig = {
  5. handlerType: 'jwt',
  6. docs: {
  7. get: {
  8. description: 'validates session token for each step of survey',
  9. notes: 'validates session token for each step of survey',
  10. },
  11. },
  12. }
  13. module.exports = {
  14. method: 'GET',
  15. path: '/validatesession',
  16. options: {
  17. ...pluginConfig.docs.get,
  18. tags: ['api'],
  19. auth: 'default_jwt',
  20. cors: true,
  21. handler: async function (request, h) {
  22. const sessionToken = request.headers.authorization
  23. const { userService } = request.server.services()
  24. try {
  25. const validatedSessionToken =
  26. userService.validateToken(sessionToken)
  27. return {
  28. ok: true,
  29. handler: pluginConfig.handlerType,
  30. data: validatedSessionToken,
  31. }
  32. } catch (err) {
  33. return {
  34. ok: false,
  35. handler: pluginConfig.handlerType,
  36. data: { error: err.message },
  37. }
  38. }
  39. },
  40. validate: {
  41. failAction: 'log',
  42. },
  43. response: {
  44. schema: Joi.object({
  45. ok: Joi.bool(),
  46. handler: Joi.string(),
  47. data: Joi.object(),
  48. }).label('validate_session_res'),
  49. failAction: 'log',
  50. },
  51. },
  52. }