Неверный запрос: метод должен быть POST при попытке получить токен с помощью hapi-swagger

Этот код ниже представляет собой код, который я пытаюсь получить токен доступа, но не могу получить никакого возврата из этой строки.

"return req.oauth.token (запрос, ответ).then (function(token{res.json(token)}). catch (function (err) {console.log (err)})"

let OAuth2Server = require('oauth2-server'),
Request = OAuth2Server.Request,
Response = OAuth2Server.Response


function obtainToken(req, res) {

    req.oauth = new OAuth2Server({
        model: require('../../models/model'),
        accessTokenLifetime: 60 * 60,
        allowBearerTokensInQueryString: true
    })

    var request = new Request(req);
    var response = new Response(res);
    console.log({req})
    return req.oauth.token(request, response)
        .then(function(token) {
        
            res.json(token);
        }).catch(function(err) {

            console.log(err)
        })
}

module.exports = [
    {
        name: 'services.auth.login',
        method: obtainToken
    }
]

И ответ, когда я попадаю в свою конечную точку из этого кода ниже, я получаю ошибку типа "invalid_request: Invalid request: method must be POST"

const Joi = require('joi')
const handler = require('../handler/login')
//const schemas = require('../schemas/login')

Я все еще не понимаю, почему я получаю эту ошибку, потому что я уже установил метод из маршрутов на "POST". Может кто-нибудь объяснить мне это?

const route = {
  method: 'POST',
  path: '/auth/login',
  options: {
    tags: ['api', 'auth'],
    description: 'Login API',
    notes: 'It will return access token and refresh token',
    validate: {
      payload: {
        username: Joi.string().min(5).max(45).alphanum().required(),
        password: Joi.string().min(5).max(30).required()
      },
      options: {
        allowUnknown: true
      }
    },
    plugins: {
      'hapi-swagger': {
        responses: {
          '200': {
            description: 'Success',
            //schema: schemas.loginResponse
          }
        }
      }
    },
    auth: false
  },
  handler
}

module.exports = route

0 ответов

Другие вопросы по тегам