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 (aplicação cliente)
Execute o script Mongo que está em /model/inicializacaoMongo.js -- isto criará o usuário "Administrador" com senha "123" e uma aplicação cliente com client_id="test_application_id" e secret="test_application_secret"
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/token" no Postman e informe:
- Na aba Authorization vão as informações da aplicação cliente:
- Username: test_application_id
- Password: 123
- Na aba Body vão as informações do usuário:
- Selecione "x-www-form-urlencoded"
- grant_type: password
- username: Administrador
- password: 123
4) Testando a rota
-
Basta fazer a requisição incluindo o token no cabeçalho da requisição. No Postman, no exemplo POST ~/menores, na aba "Headers" inclua o seguinte (a string destacada é o token obtido no passo 2):
- Authorization: Bearer FfzutUS50zSzJiWnhosQK0QXkKldw9tSrMTQXxv4FKw7TNhXjtxmyCXxMHhxgbCKjsbcCPdEQKWTbM6bQnhdveOH85rNH9flJukd0jyzm5hZyA0pV9sNXPFHYKicQ59mZsA1PxLFXggBusOKV78O5crBsR6O5DXVdFR9lEu02S3ls1oxQOFcMprds9ZUyKETak1XIGJfGFvfPs2nJQ7oGG5wEsHof4pb21yPOZHg474NveisCkeW7STyB82ikUY3