I’m going to get back to React Native eventually, but tonight I spent some time working on a new Flask app that I started last week. I worked on trying to fix a few bugs with the Auth0 flow but spent most of my night digging through the logs and staring at this image.
Login works like a charm. Logging out is a whole other story.
One interesting thing about this auth flow is that it enabled you to use wraps and make a decorator. This is a powerful functional programming concept in python that makes life a whole lot easier.
def requires_auth(f): @wraps(f) def decorated(*args, **kwargs): if 'JWT_PAYLOAD' not in session: return redirect('/login') return f(*args, **kwargs) return decorated
This concept is a “Higher Order Function” or a function that returns another function. If you are a JS developer you do this all day long. In this specific context this allows you to use the @requires_auth decorator on routes to ensure that a user is logged in before serving that route.
In other news, I also spent some time today learning more about actually using Redis. I think I’ve installed it and monitored it half a dozen times but I have never had the chance to actually do anything useful with it.
A great resource that I found was this article on how to go from zero to Redis master in 30 minutes. I also purchased Medis which is a beautiful MacOS GUI for Redis that is available in the app store for $5.