選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

user.js 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const Objection = require('objection');
  2. const Schmervice = require('@hapipal/schmervice');
  3. const Schwifty = require('@hapipal/schwifty');
  4. const Jwt = require('@hapi/jwt');
  5. const JwtStrategy = require('../auth/strategies/jwt')
  6. const UserModel = require('../models/user');
  7. const UserCurrentRoute = require('../routes/user/current');
  8. const UserLoginRoute = require('../routes/user/login');
  9. const UserService = require('../services/user');
  10. module.exports = {
  11. name: 'user-plugin',
  12. version: '1.0.0',
  13. register: async (server, options) => {
  14. await server.register(Jwt)
  15. await server.register(Schwifty)
  16. await server.registerModel(UserModel)
  17. const mainApp = server.registrations['main-app-plugin']
  18. const jwtOptions = JwtStrategy(mainApp.options)
  19. server.auth.strategy('default_jwt', 'jwt', jwtOptions)
  20. server.auth.default('default_jwt')
  21. // Bind to global context
  22. // So we can use Objection transactions
  23. server.bind({
  24. transaction: (fn) => Objection.transaction(server.knex(), fn)
  25. })
  26. await server.register(Schmervice)
  27. server.registerService(UserService)
  28. await server.route(UserCurrentRoute)
  29. await server.route(UserLoginRoute)
  30. }
  31. }