Manuales de desarrollo de YeboYebo
[TO DO]
[TO DO]
Hay ciertos casos en los que, aun estando en una aplicación que exige login, debemos acceder a la API sin identificarnos. Algunos de estos casos son:
Los pasos para crear un nuevo acceso no logueado son los siguientes
const urlNeedsLogin = (url) => {
const loginUrls = ['login', 'forgot_password', 'check_hashlink']
const firstWord = url.split('/')[0]
return !loginUrls.includes(firstWord)
}
path && path.startsWith('/forgot-password')
? routeResult || <Quimera.View id="PageNotFound" />
:...
path('forgot_password', views.forgot_password, name='forgot_password'),
path('forgot_password/', views.forgot_password, name='forgot_password'),
@csrf_exempt
def forgot_password(request):
try:
params = json.loads(request.body.decode("utf-8"))
username = params["username"]
except Exception:
username = request.POST.get("username", None)
try:
APIQSA.forgot_password(username)
result = HttpResponse(json.dumps({}), status=200)
except Exception as e:
result = HttpResponse(json.dumps({'error': str(e)}), status=404)
result['Access-Control-Allow-Origin'] = '*'
return result
def forgot_password(username):
try:
obj = qsa.from_project("formAPI").forgot_password(username)
except Exception as e:
print(bcolors.FAIL + "Excepcion " + str(e) + bcolors.ENDC)
ex_type, ex_value, ex_traceback = sys.exc_info()
# Extract unformatter stack traces as tuples
trace_back = traceback.extract_tb(ex_traceback)
# Format stacktrace
stack_trace = list()
for trace in trace_back:
stack_trace.append("File : %s , Line : %d, Func.Name : %s, Message : %s" % (trace[0], trace[1], trace[2], trace[3]))
raise Exception(e)
return obj