- Crie um arquivo .env e nele deve conter algumas váriaveis de sistema:
DEBUG=False
SECRET_KEY=Colocar a secrety key aqui
EMAIL_HOST_USER=usuario do seu provedor de email
EMAIL_HOST_PASSWORD=senha do seu provedor de email
- Crie um virtual enviroment, ative o mesmo e utilize o seguinte comando para instalar as dependência do projeto.
pip install -r requirements.txt
- Utilizado para criar responses customizadas reutilizáveis
from rest_framework import renderers
import json
class UserRender(renderers.JSONRenderer):
charset = 'utf-8'
def render(self, data, accepted_media_type=None, renderer_context=None):
response = ''
if 'ErrorDetail' in str(data):
response = json.dumps({'errors': data})
else:
response = json.dumps({'data': data})
return response
- Para utilizar basta ir na view que deseja usar e especificar a renderer class:
renderer_classes = (UserRender,)
- Alteração do tempo de vida do token, por padrão é 5m do access token e 1 dia o refresh token docs
- Fiz uma pequena alteração para me ajudar no desenvolvimento
from datetime import timedelta
SIMPLE_JWT = {
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=50),
'REFRESH_TOKEN_LIFETIME': timedelta(days=1)
}
- Utilizado para ter essa UI bonitona, facilitando na parte da documentação da API, além de poder ir testando durando o desenvolvimento, sem precisar utilizar outros programas para consumir a API.
- Utilizado para esconder pontos sensiveis do settings.py
- Utilizado para que outros possam utilizar a minha API.
CORS_ORIGIN_ALLOW_ALL = True
- Também posso escolher para que apenas alguns possam utilizar a minha API.
CORS_ORIGIN_WHITELIST = [
"http://localhost:5000"
"http://127.0.0.1:5000"
"http://localhost:8000"
"http://127.0.0.1:8000"
]
-
Enviando email para resetar a senha IMPORTANTE lembrar que se o email, existir ou não no banco de dados irá receber um success, dizendo que foi enviado o email, assim diminui as chances de pessoas mal intencionadas tentar forçar o sistema a resetar a senha dos outros.
-
Criando um novo usuario:
-
Erro customizado caso a senha não contenha apenas caracteres alphanumericos.
- Caso não haja erros o fluxo é este:
- Logo após criar um novo usuário você deve ativa-lo confirmando o email:
- Ao clicar no link irá receber um success:
- Ou um erro dizendo que o link expirou:
- Ao optar em resetar a senha, você irá receber um email com um link:
- Após clicar no link irá receber um success:
- Pode acontecer de demorar muito para receber/clicar e ele irá expirar:
- Agora deve ser enviado um Patch com a nova senha, Uidb64 e o token:
- Logo em seguida você irá ter a seguinte response:
- Caso contrario irá receber dizendo que o token é invalido, caso já tenha expirado além dos outros erros base, por exemplo o da senha.
- Total gasto de aproximadamente há um ano.
- Total ganhos de aproximadamente há um ano.
- Total gasto de aproximadamente do mês (em andamento)
- Total gasto de aproximadamente do mês (em andamento)
- Utilização do Facker, para que seja gerado informações aleatórias facilitando a escrita dos testes.
- test_setup -> TestSetUp: Contém a base dos dados e as urls que tem testes criados
- test_view.py -> TestViews: Contém 4 testes simples de exemplo