Skip to content
Bueno, Feliphe edited this page Aug 18, 2020 · 35 revisions

Endpoints usados para efetuar login por um segurado

POST: /v1/person/login/contact/

Retorna as informações de contato de uma pessoa, os emails e telefones, censurados

  1. Enviar uma requisição para este-endpoint utilizando o valor do campo "response-token" do payload para verificar se o captcha é válido;

    • Caso contrário, retornar status code 401;
  2. Verificar se existe na tabela "pf_cpf" um documento com a chave "pf_cpf" equivalente ao "cpf" presente no payload desta requisição.

    • Caso não exista, retornar status code 404;
  3. Consultar se a data de nascimento do cadastro retornado no item anterior é equivalente a informada no payload;

    • Caso contrário, retornar status code 403;
  4. Consultar neste endpoint as matrículas do usuário no órgão informado no payload.

    • Caso tenha matrícula de ativo ou pensionista, seguir para o próximo passo.
    • Caso tenha informado um instituidor, retornar status code 405.
    • Caso tenha informado um usuário sem matriculas, retornar status code 412.
  5. Retornar todos os emails e telefones cadastrados para o usuário, filtrando pelo oid informado no payload:

    • Caso o usuário não possua emails e telefones, retornar 417;

Header:

Authorization: Bearer {JWT} //token de aplicação

Body:

{
    "cpf": "123.456.789.10",
    "nascimento": "2000-12-31",
    "oid": "{oid}",
    "oeid": "{oeid}",
    "response-token": "{re-captch-response-token}"
}

Resposta:

{
  "success": true,
    "data": {
        "SocialAPI": {
            "pf_id": "{snow_flake}",
            "emails": [
              {
                "email": "***dre@bracon***",
                "email_id": "{snow_flake}" 
              }
            ],
            "cellphones": [
              {
                "cellphones": "081*****7151",
                "cellphones_id": "{snow_flake}"
              }
            ]
        }
    }
}

200 | 400 | 401 | 403 | 404 | 405 | 412 | 417

POST: /v2/person/login/contact/

Retorna as informações de contato de uma pessoa, os emails e telefones, censurados, usando apenas o CPF

  1. Enviar uma requisição para este-endpoint utilizando o valor do campo "response-token" do payload para verificar se o captcha é válido;

    • Caso contrário, retornar status code 401;
  2. Verificar se existe na tabela "pf_cpf" um documento com a chave "pf_cpf" equivalente ao "cpf" presente no payload desta requisição.

    • Caso não exista, retornar status code 404;
  3. Consultar neste endpoint as matrículas do usuário no órgão informado no payload.

    • Caso tenha matrícula de ativo ou pensionista, seguir para o próximo passo.
    • Caso tenha informado um instituidor, retornar status code 405.
    • Caso tenha informado um usuário sem matriculas, retornar status code 412.
  4. Retornar todos os emails e telefones cadastrados para o usuário, filtrando pelo oid informado no payload:

    • Caso o usuário não possua emails e telefones, retornar 417;

Header:

Authorization: Bearer {JWT} //token de aplicação

Body:

{
    "cpf": "123.456.789.10",
    "oid": "{oid}",
    "oeid": "{oeid}",
    "response-token": "{re-captch-response-token}"
}

Resposta:

{
  "success": true,
    "data": {
        "SocialAPI": {
            "pf_id": "{snow_flake}",
            "emails": [
              {
                "email": "***dre@bracon***",
                "email_id": "{snow_flake}" 
              }
            ],
            "cellphones": [
              {
                "cellphones": "081*****7151",
                "cellphones_id": "{snow_flake}"
              }
            ]
        }
    }
}

200 | 400 | 401 | 403 | 404 | 405 | 412 | 417

POST /v1/person/login/email/send-code/

Envia para o email o código para acessar a aplicação

  1. Verificar se existe um usuário com o pf_id informado

    *Caso não encontrado, retornar status code 404;

  2. Verificar se o email_id informado é referente a um email referente ao pf_id

    • Caso contrário, retornar status code 405;
  3. Adicionar na collection Verification Code um novo documento com as informações do email e código gerado;

  4. Enviar para o email o código de acesso a aplicação;

Header:

Authorization: Bearer {JWT} //Token aplicação

Body:

{
    "pf_id": "{snow_flake}",
    "email_id": "{snow_flake}"
}

Resposta:

200 | 404 | 405

POST /v1/person/login/cellphone/send-code/

Envia para o celular o código para acessar a aplicação

  1. Verificar se existe um usuário com o pf_id informado

    *Caso não encontrado, retornar status code 404;

  2. Verificar se o phone_id informado é referente a um celular referente ao pf_id

    • Caso contrário, retornar status code 405;
  3. Adicionar na collection Verification Code um novo documento com as informações do celular e código gerado;

  4. Enviar para o celular o código de acesso a aplicação;

Header:

Authorization: Bearer {JWT} //Token aplicação

Body:

{
    "pf_id": "{snow_flake}",
    "cellphone_id": "{snow_flake}"
}

Resposta:

200 | 404 | 405

POST: /v1/person/login/

Retorna o token do usuário, com o campo superUsuario="U", indicando login de usuário segurado e status="limited", token limitado

  1. Verificar se existe na collection Verification Code um documento com o pf_id e o resource_id referente ao informado no payload.

    *Caso não encontrado, retornar status code 404;

  2. Verificar se o código informado no payload está de acordo com o código encontrado no item anterior;

    *Caso contrário, retornar status code 405;

  3. Verificar se o código informado no payload não foi expirado;

    *Caso contrário, retornar status code 412;

  4. Verificar se o código informado no payload já foi validado anteriormente;

    *Caso verdade, retornar status code 409;

  5. Verificar se na RH existe ao menos um registro de matrícula(servidor_id) vinculado ao pf_id retornado no item anterior;

    • Caso contrário, retornar status code 406;
  6. Adicionar na collection Verification Code o atributo "used" com a hora de acesso deste endpoint;

  7. Consultar neste endpoint as matrículas do usuário no órgão informado no payload.

    • Caso tenha matrícula de ativo ou pensionista, seguir para o próximo passo.
    • Caso tenha informado um pensionario ou não exista matrícula para o usuário, retornar status code 417.
  8. Validar o email ou celular pelo resource_id informado;

  9. Retornar token de usuário com validade de 15 minutos e status="limited";

Header:

Authorization: Bearer {JWT} //token de aplicação

Body:

{
    "pf_id": "{snow_flake}",
    "code": "123456",
    "resource_id": "{snow_flake}"  // email_id ou cellphone_id
    "oid": "{oid}",
    "oeid": "{oeid}"
}

Resposta:

{
    "success": true,
    "data": {
        "SocialAPI": {
            "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1NjUxODg1OTEsImlzcyI6Ik9ueXhwcmV2IiwiZXhwIjoxNTY1MjMxNzkxLCJuYmYiOjE1NjUxODg1OTAsImRhdGEiOnsiYXBwIjp7ImFwaUlkIjoiMjJlNmVjYjVhZGFhIiwiYXBwQ29kIjozMiwiYXBwT3NDb2QiOjEsIm5hbWUiOiJGb3BhZyIsImFwaWtleSI6IjIyZTZlY2I1YWRhYSIsInNlY3VyaXR5IjoiSSIsImxhdW5jaGVySWdub3JlIjoiTiIsImNhY2hlIjoiSSIsInZlcnNpb24iOiIxLjAuMCJ9LCJ1c2VyIjp7InBmQ29kIjo5OTksInVzdWFyaW9Db2QiOjI1Niwib3JnYW9Db2QiOjEsIm9yZ2FvRW50aWRhZGVDb2QiOjEsInByaXZDb2QiOjE1LCJzdXBlclVzdWFyaW8iOiJTIiwibm9tZSI6IkFORFJFIFBFUkVJUkEgTEVJVEUiLCJ1dWlkIjoiZDQ2MTIwZDRlMTk1ZjJjNWE3ZGFkN2JkYjhmYTYwIiwibG9naW4iOiIwNDYyMTQ2NTM3NiIsImZvdG8iOiJodHRwczpcL1wvc3RvcmFnZS1hbHBoYTIub255eGVycC5jb20uYnJcLzJmNGJjZGJlM2I3Yjg3NzZkZjU5NDUxZmEzNDk1Yi5wbmciLCJjZWx1bGFyIjpudWxsLCJlbWFpbCI6bnVsbCwidXNlci1sZW5ndGgiOjgsInBmaWQiOiI1MDE0OTA4NjE3ODc2NjgwNzU1Iiwib2lkIjoiNTA4YjM4NjdmOTFmYTBlMzNjYmI1ODkyYjY0NDNjIiwib2VpZCI6IjYxNTNlYWM5MGQzOTI3ZjVmYWE5MWViYzM2YWRiOCIsImZ1c29Ib3JhcmlvIjoiLTMiLCJtb2VkYSI6ImJyYXppbGlhbl9yZWFsIiwiaWRpb21hIjoicHQtYnIiLCJkYXRhIjoiYnJhemlsaWFuX2RhdGVfZm9ybWF0IiwibGF1bmNoZXIiOiJfYmxhbmsifX19.yu1p6e-rdaQSejprBNjRiv8a-5P8Ko3acIGMefxjbbM"
        }
    }
}

200 | 400 | 401 | 403 | 404 | 405 | 409 | 412 | 417

Challenge

Endpoints usados para certificar que o usuário está autorizado a adicionar uma forma de contanto (email ou celular)

POST: /v1/person/login/challenge/questions/

Retorna as perguntas e opções de resposta do challenge

  1. Verificar se o pf_id informado é um pf_id válido;

    • Caso contrário, retornar status code 404;
  2. Iniciar a captura de informações do usuário para gerar as perguntas do challenge:

    • rg: data de emissão
    • nome dos pais: nome do meio, ultimo nome
    • naturalidade: cidade/UF
    • matricula: número
    • data ingresso
  3. Gerar respostas aleatórias de acordo com as perguntas;

  4. Concatenar os headers das perguntas e assinar com um HMAC;

  5. Retornar um objeto com as perguntas e respostas e a assinatura dos headers das perguntas;

Header:

Authorization: Bearer {JWT} //token de aplicação

Body:

{
    "pf_id": "{snowflake_id}",
    "oid": "{oid}",
    "oeid": "{oeid}"
}

Resposta:

{
  "success": true,
    "data": {
        "SocialAPI": {
            "questions":[
              {
                "nome_mae_meio": [
                  "pereira", "josefina", "da silva", "costa", "Ferreira"
                ]
              },
              {
                "rg_data_emissao": [
                  "2010-01-01", "2012-05-10", "2013-10-20", "2015-06-15", "2008-08-01"
                ]
              },
              {
                "naturalidade": [
                  "São Paulo - SP", "Olinda - PE", "Cuibá - MT", "Buenos Aires - PE", "Guarulhos - SP"
                ]
              },
              {
                "nome_pai_ultimo": [
                  "Silva", "Pereira", "Costa", "Filho", "Bueno"
                ]
              },
              {
                "matricula": [
                  "0123", "4569", "1290", "2100", "4232"
                ]
              }
            ],
            "signature": "6eaa3c39c802f58be2c88f46bef79d24893e5e7e73eaa144cafcee67ec8df8a8"
        }
    }
}

200 | 400 | 403 | 404

POST /v1/person/login/challenge/answers/

Envia a resposta do challenge

  1. Verificar se a assinatura informada confere com os headers das respostas;

    • Caso contrário, retornar 400
  2. Verificar se existe um usuário com o pf_id informado;

    • Caso não encontrado, retornar status code 404;
  3. Verificar se o celular ou email informado é válido;

    • Caso contrário, retornar 406;
    • Caso seja informado celular e email, considerar apenas o celular;
  4. Verificar se o email ou celular informado já existe para outro segurado e se o mesmo já está validado;

    • Caso verdadeiro, retornar status code 409;
  5. Verificar se as respostas informadas estão corretas;

    • Caso contrário, retornar status code 405;
  6. Adicionar o email ou celular ao segurado;

  7. Enviar o código de acesso a aplicação para o celular ou email informado;

Header:

Authorization: Bearer {JWT} //Token aplicação

Body:

{
    "pf_id": "{snow_flake}",
    "oid": "{oid}",
    "oeid": "{oeid}",
    "answers": [
        {
            "nome_mae_meio":"pereira"
	},
	{
	    "rg_data_emissao": "2010-01-01"
	},
	{
	    "naturalidade": "São Paulo - SP"
	},
	{
	    "nome_pai_ultimo": "Filho"
	},
	{
	    "matricula": "2100"
	}
    ],
    "cellphone": "81988776655", // ou null
    "email": "teste@teste.com", // ou null
    "signature": "6eaa3c39c802f58be2c88f46bef79d24893e5e7e73eaa144cafcee67ec8df8a8"
}
{
  "success": true,
  "data": {
    "SocialAPI": {
      "resource_id": "{cellphone_id | email_id inserido}"
    }
  } 
}

Resposta:

200 | 400 | 404 | 405 | 406 | 409

Iniciando

Cached results

Miscelânea

Pesquisando

Pessoa física

Nome

Nome social

Data de nascimento

Data de óbito

Estado civil

Escolaridade

Raça/cor

PNE

Nacionalidade

Naturalidade

Foto do perfil

Perfil

Bio

Login

Documentos

Identidade

PIS/PASEP/NIT

Título de eleitor

CNH

CTPS

CTC

Reservista

Cursos

Certidão de Nascimento Casamento

Carteira do Conselho de Classe

Remoção de Documentos

Contatos

Telefones

Emails

Endereços

Endereços(v2)

Família

Data exchange

Pessoa física

Clone this wiki locally