Loading video player…

Setting Up Your Development Environment

00:00 To build the demo app you’ll make use of several Python packages. Flask is a microframework for building web apps. Being a microframework, Flask provides only the bare minimum services needed to create a web app.

00:13 Basically, this just means handling HTTP traffic and mapping requests to routes. Flask-Login is a package that provides user session management. In other words, it simply determines if a user is logged in or logged out.

00:28 It also does some other things, but remember that a large part of authenticating users in the demo app will be handled by Google. As you saw earlier, there are a number of steps in the OAuth flow.

00:40 Implementing the flow from scratch can be tricky, and if you make a mistake, it can leave major security holes in your app. Fortunately, the Python community has provided the oauthlib package.

00:52 This package is widely used and has almost a decade of experience, so you can be sure that it is sufficient for your needs. You’ll also need a way to call the URLs on the provider, independent of Flask.

01:04 This will be required to exchange the authorization code for the tokens. While the Python standard library includes the urllib package, here’s an easier way to make HTTP requests—and it’s a package called requests.

01:16 The author refers to it as “HTTP for Humans,” and it reduces calling an HTTP endpoint to just a few lines of code. Finally, you may have noticed that the URLs provided to Google during the registration process use secure HTTP, and this is a requirement.

01:32 By default, Flask does not implement secure HTTP but instead relies on the pyOpenSSL package.

01:41 It’s time to get hands-on. I’ll be using Visual Studio Code with the Python extension installed for the demo, but you can use any text editor such as Atom or IDE such as PyCharm.

01:52 In Visual Studio Code, open the terminal with Control + ` (backtick) and create a new directory to serve as the project root. Next, create a virtual environment for the demo app.

02:05 Restart Visual Studio Code, opening the new directory as a project.

02:11 In Visual Studio Code, associate the project with the virtual environment. Press Control + Shift + P, or Command + Shift + P on macOS, and search for “python select default interpreter.”

02:23 Select that command, and then the virtual environment you just created.

02:29 If you are not using Visual Studio Code, you can activate the virtual environment by running the activate script inside of the scripts folder of the virtual environment.

02:40 Now open a new terminal window, which will trigger the activate script for the virtual environment. Create a new text file requirements.txt and add the following to it.

02:50 Each line represents one of the packages and a specific version to install. Newer versions may work, but these have been tested for the demo app.

02:59 Install the packages using pip. This will read from the requirements.txt file. Coming up next, you’ll look at some helper code.

Become a Member to join the conversation.