Opa, estou com uma dificuldade.
O meu middleware do HttpClient não está sendo executado...
Bibliotecas e código exatamente igual ao do professor nas aulas, mas de alguma forma não está executando o middleware.
Quando acesso a página do /api/refresh, um novo token não é criado, mas, após a primeira tentativa, recebo o "401, não autorizado". refresh.js
import nookies from 'nookies'
import { HttpClient } from '../../src/infra/HttpClient/HttpClient'
import { tokenService } from '../../src/services/auth/tokenService'
const REFRESH_TOKEN = 'REFRESH_TOKEN'
const controllers = {
async storeRefreshToken(req, res) {
const ctx = { req, res}
console.log(req.body)
nookies.set(ctx, REFRESH_TOKEN, req.body.refresh_token, {
httpOnly: true,
sameSite: 'lax'
})
//Same site Lax - Garantir que somente o domínio atual terá acesso a esse token
res.json({
data: {
message: 'Stored with Success'
}
})
},
async displayCookies(req, res) {
const ctx = { req, res}
res.json({
data: {
cookies: nookies.get(ctx)
}
})
},
async regenerateTokens(req, res) {
const ctx = { req, res}
const cookies = nookies.get(ctx)
const refresh_token = cookies[REFRESH_TOKEN]
console.log(refresh_token)
const refreshResponse = await HttpClient(`http://localhost:4000/api/refresh`, {
method: 'POST',
body: {
refresh_token
}
})
if (refreshResponse.ok) {
nookies.get(ctx, REFRESH_TOKEN, refreshResponse.body.refresh_token, {
httpOnly: true,
sameSite: 'lax'
})
tokenService.save(refreshResponse.body.access_token,ctx)
// console.log(refreshResponse.body.refresh_token)
res.status(200).json({
data: refreshResponse.body.data
})
} else {
res.status(401).json({
status: 401,
message: 'Não autorizado'
})
}
}
}
const controllerBy = {
POST: controllers.storeRefreshToken,
GET: controllers.regenerateTokens
}
export default function handler(req, res) {
if (controllerBy[req.method]) return controllerBy[req.method](req, res)
res.status(404).json({
status: 404,
message: 'Not found'
})
}
Alguma funcionalidade do próprio Next foi alterada quanto ao tratamento desses casos?