R1D10 Oops, Something Went Wrong.

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.

Auth0 Error Screen

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.

 

 

Leave a Reply