Executando verificação de segurança...
1

[DÚVIDA] Autenticação JWT: Setando o userId no Header da aplicação.

Stacks utilizadas: Nodejs + Mongodb + Express + Typescript

Estou com uma dúvida em relação a middleware de autenticação para prover rotas privadas ao usuário. Vamos supor que estou criando um CRUD e para pegar o Id do user, utilizo a middleware de autenticação e envio para o header o Id do user, desestruturando o objeto decoded. É uma boa prática?

obs:Estava utilizando o body para pegar o Id do user, mas percebi que se eu for dar um UPDATE ou DEL no banco de dados com o id do usuário exposto no body, ao trocar os paramêtros e colocar os de outro usuário, consigo, a partir do token de "João", alterar os dados de "Maria".

obs2:Pensei até me criptografar o id passado no header e descriptografar na middleware que a receber. Mas pensando em questão de performace, não seria uma boa ideia.

Estou utilizando a prática errada para pegar o Id do usuário por outras middlewares?

Carregando publicação patrocinada...
1

Não sei se entendi a dúvida, mas utilizando JWT, geralmente no middleware de autenticação eu costumo desestruturar os dados do token e armazená-los no req.locals, e, aproveito e já faço uma interface que extende o próprio tipo Request do express, adicionando um objeto ao locals que também é tipado de acordo com as informações que eu salvei no token.

1
1

Acho que não influencia muito, mas

Geralmente após o login envio um objeto:


{
    "token": "jsonwebtoken"
}

e salvo ele como "token" no localstorage.

Te recomendo fazer o teste de tentar alterar algum dado do token, igual o id que você tinha citado, fazer uma requisição com esse token "fraudulento" e ver o que acontece!

1