Como para proteger uma rota (OAuth 2)
Caso você tenha desenvolvido uma nova rota que precise estar protegida pela autenticação OAuth 2 siga os seguintes passos:
1) Criar Usuario e Cliente OAuth 2
Execute o script Mongo que está em /model/inicializacaoMongo.js -- isto criará um usuário inicial e cliente OAuth
2) Proteger a rota
Basta utilizar o método AuthManager.isAuthenticated como segundo parâmetro do método de registro de rota do servidor Restify.
Abaixo, a rota POST ~/menores não protegida:
server.post('/menores', (request, response, next) => {
const menorTranslator = new MenorTranslator()
menorTranslator.post(request, response)
})
E agora protegida (note o segundo parâmetro):
server.post('/menores', AuthManager.isAuthenticated, (request, response, next) => {
const menorTranslator = new MenorTranslator()
menorTranslator.post(request, response)
})
3) Requisitar o token no postman
Abra a requisição POST "/oauth" no Postman e informe:
- Na aba Authorization vão as informações da aplicação cliente:
- Username: adocoes.app
- Password: 407a4d80fce791751cd83ab1af3d9b26
- Na aba Body vão as informações do usuário:
- Selecione "x-www-form-urlencoded"
- grant_type: password
- username: [email protected]
- password: 123
4) Testando a rota
-
Basta fazer a requisição para o recurso protegido incluindo o token no cabeçalho da requisição. No Postman, na aba "Headers", o token já está sendo incluído com a variável de ambiente {{access-token}}. Para atualizar o valor desta variável basta executar a requisição "POST /oauth". Ele será convertido em um cabeçalho como no exemplo abaixo:
- Authorization: Bearer FfzutUS50zSzJiWnhosQK0QXkKldw9tSrMTQXxv4FKw7TNhXjtxmyCXxMHhxgbCKjsbcCPdEQKWTbM6bQnhdveOH85rNH9flJukd0jyzm5hZyA0pV9sNXPFHYKicQ59mZsA1PxLFXggBusOKV78O5crBsR6O5DXVdFR9lEu02S3ls1oxQOFcMprds9ZUyKETak1XIGJfGFvfPs2nJQ7oGG5wEsHof4pb21yPOZHg474NveisCkeW7STyB82ikUY3