Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

validatejwt.js 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. 'use strict'
  2. const Joi = require('joi')
  3. const pluginConfig = {
  4. handlerType: 'jwt',
  5. docs: {
  6. get: {
  7. description: 'validates jwt for each step of survey',
  8. notes: 'validates jwt for each step of survey',
  9. },
  10. },
  11. }
  12. module.exports = {
  13. method: 'GET',
  14. path: '/validatejwt/{jwt}',
  15. options: {
  16. ...pluginConfig.docs.get,
  17. tags: ['api'],
  18. auth: false,
  19. cors: true,
  20. handler: async function (request, h) {
  21. const jwt = request.params.jwt
  22. const { userService } = request.server.services()
  23. const jwtIsValid = userService.validateToken(jwt)
  24. try {
  25. return {
  26. ok: true,
  27. handler: pluginConfig.handlerType,
  28. data: { isValid: jwtIsValid.isValid },
  29. }
  30. } catch (err) {
  31. return {
  32. ok: false,
  33. handler: pluginConfig.handlerType,
  34. data: {
  35. error: err,
  36. },
  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_jwt_res'),
  49. failAction: 'log',
  50. },
  51. },
  52. }