======= TokenUFRJ =======
Projeto consiste em uma aplicação para autenticar veracidade de dados de acesso dos colaboradores da UFRJ.
Para usar o serviço basta chamar o endereço https://token.ufrj.br.
{{ :infotic:sistemas:tokenufrj:tokenufrjcadastro-1.2.png?nolink&800 |}}
[[infotic:sistemas:tokenufrj:processodescricao|Entenda o processo]]
----
====== Adicionando um usuário ======
| **Rota** | ///addCredential// ou ///credenzialiAdd// ou ///api/credenzialiAdd// |
| **Método** | Post |
| **Parâmetros** |
| **login** | CPF do usuário. |
| **email** | e-mail do usuário. |
| **uuid** | UUID identificador do serviço. |
Adicionar um usuário significa dar permissão para ele usar o serviço externo específico.
Para isso, usa-se a rota **/credenzialiAdd**, com os seus parâmetros:
* **login**: a identificação do usuário no sistema de autenticação da UFRJ, que é o CPF do mesmo;
* **e-mail**: do usuário, que será usado para notificá-lo de que foi dada a permissão para o mesmo usufruir do serviço externo específico e;
* **uuid**: que é o identificador único do serviço cadastrado no Token UFRJ.
===== Retorno =====
O retorno possível desta rota é um json que pode conter os seguintes atributos:
* **loginValidita**: a informação do login que foi passado para o serviço;
* **uuidValidita**: a informação do uuid que foi passado para o serviço;
* **login**: contendo os possíveis valores: **[true]** caso o usuário tenha sido cadastrado corretamente e; **[false]** caso o usuário não tenha sido cadastrado corretamente;
* **mail**: contendo o valor **[true]** quando o usuário ainda não tiver sido cadastrado anteriormente. Quando o usuário já tiver sido cadastrado anteriormente, este atributo não será retornado e;
* **uuid**: contendo o valor **[false]** quando o uuid não coincidir com um identificador válido. Caso o identificador seja válido, este atributo não será retornado.
* **informazioni**: contendo informações adicionais, quando houver.
----
==== Exemplos ====
**1. Usuário, email e uuid válidos.**
**Envio**: ''{
login: '99999999999',
email: '99@99.com.br',
uuid: 'uuid',
}''
**Retorno**: ''{
"loginValidita": "99999999999",
"uuidValidita": "uuid",
"login": true,
"mail": true,
}''
**2. Usuário, já cadastrado.**
**Envio**: ''{
login: '99999999999',
email: '99@99.com.br',
uuid: 'uuid',
}''
**Retorno**: ''{
"loginValidita: "99999999999",
"uuidValidita": "uuid",
"login": true,
}''
**3. UUID não encontrado.**
**Envio**: ''{
login: '99999999999',
email: '99@99.com.br',
uuid: 'uuid',
}''
**Retorno**: ''{
"loginValidita: "99999999999",
"uuidValidita": "uuid",
"uuid": False,
}''
**3. UUID não informado.**
**Envio**: ''{
login: '99999999999',
email: '99@99.com.br',
uuid: ,
}''
**Retorno**: ''{
"loginValidita: "99999999999",
"uuidValidita": "uuid",
uuid: "NULL",
}''
----
====== Validando um usuário ======
| **Rota** | ///validate// ou ///credenziali// ou ///api/credenziali// |
| **Método** | Post |
| **Parâmetros** |
| **login** | CPF do usuário. |
| **token** | Token do usuário. |
| **uuid** | UUID identificador do serviço. |
Validar um usuário significa verificar a permissão para ele usar o serviço externo específico.
Para isso, usa-se a rota /credenziali, com os seus parâmetros:
* **login**: a identificação do usuário no sistema de autenticação da UFRJ, que é o CPF do mesmo;
* **token**: do usuário, para validação e;
* **uuid**: que é o identificador único do serviço cadastrado no Token UFRJ.
===== Retorno =====
O retorno possível desta rota é um json que pode conter os seguintes atributos:
* **auth**: contendo os possíveis valores: **[true]** caso o usuário e o token corresponderem e; **[false]** qualquer outra condição;
* **tokenValidita**: a informação do token que foi passado para o serviço;
* **loginValidita**: a informação do login que foi passado para o serviço;
* **uuidValidita**: a informação do UUID que foi passado para o serviço;
* **login**: a informação do login que foi passado para o serviço contendo o valor **[false]** caso o usuário não tenha sido cadastrado anteriormente. Quando o usuário já tiver sido cadastrado, este atributo não será retornado;
* **token**: contendo o valor **[false]** quando o token não for válido. Quando as credenciais do usuário forem válidas este atributo não será retornado;
* **uuid**: a informação do uuid que foi passado para o serviço contendo o valor **[false]** quando o uuid não coincidir com um identificador válido. Caso o identificador seja válido, este atributo não será retornado.
* **informazioni**: contendo informações adicionais, quando houver.
----
==== Exemplos ====
**1. Usuário, token e uuid válidos.**
**Envio**: ''{
login: '99999999999',
token: '9999',
uuid: 'uuid',
}''
**Retorno**: ''{
"auth": True,
"loginValidita": '99999999999',
"tokenValidita": '9999',
"uuidValidita": 'uuid',
}''
**2. Usuário, não cadastrado.**
**Envio**: ''{
login: '99999999999',
token: '9999',
uuid: 'uuid',
}''
**Retorno**: ''{
"auth": False,
"loginValidita": '99999999999',
"tokenValidita": '9999',
"uuidValidita": 'uuid',
"login": False,
}''
**3. Token inválido.**
**Envio**: ''{
login: '99999999999',
token: '9999',
uuid: 'uuid',
}''
**Retorno**: ''{
"auth": False,
"loginValidita": '99999999999',
"tokenValidita": '9999',
"uuidValidita": 'uuid',
"token": False,
}''
**4. UUID não encontrado.**
**Envio**: ''{
login: '99999999999',
token: '9999',
uuid: 'uuid',
}''
**Retorno**: ''{
"auth": False,
"loginValidita": '99999999999',
"tokenValidita": '9999',
"uuidValidita": 'uuid',
"uuid": False,
}''
----