Неверный запрос: метод должен быть 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