# Flask OAuth 2.0 Server

This section is not a step by step guide on how to create an OAuth 2.0 provider in Flask. Instead, we will learn how the Flask implementation works, and some technical details in an OAuth 2.0 provider.

If you need a quick example, here are the official tutorial guide and examples on GitHub:

1. Example of OAuth 2.0 server

2. Example of OpenID Connect server

3. On Demand Demo for your business

At the very beginning, we need to have some basic understanding of the OAuth 2.0.

Important

If you are developing on your localhost, remember to set the environment variable:

    export AUTHLIB_INSECURE_TRANSPORT=true

Looking for Flask OAuth 2.0 client? Check out Flask OAuth Client.

- Authorization Server
  - Resource Owner
  - Client
  - Token
  - Server
  - Register Error URIs
- Register Grants
  - Authorization Code Grant
  - Implicit Grant
  - Resource Owner Password Credentials Grant
  - Client Credentials Grant
  - Refresh Token Grant
  - Custom Grant Types
  - Grant Extensions
- Token Endpoints
- Resource Server
  - Multiple Scopes
  - Optional `require_oauth`
  - MethodView & Flask-Restful
- Flask OIDC Provider
  - Understand JWT
  - Code Flow
  - Implicit Flow
  - Hybrid Flow
- API References of Flask OAuth 2.0 Server
  - SQLAlchemy Helper Functions