# OAuth Clients

This part of the documentation contains information on the client parts. Authlib provides many frameworks integrations, including:

- The famous Python Requests

- A next generation HTTP client for Python: httpx

- Flask web framework integration

- Django web framework integration

- Starlette web framework integration

- FastAPI web framework integration

In order to use Authlib client, you have to install each library yourself. For example, you want to use `requests` OAuth clients:

    $ pip install Authlib requests

For instance, you want to use `httpx` OAuth clients:

    $ pip install -U Authlib httpx

Here is a simple overview of Flask OAuth client:

    from flask import Flask, jsonify
    from authlib.integrations.flask_client import OAuth

    app = Flask(__name__)
    oauth = OAuth(app)
    github = oauth.register('github', {...})

    @app.route('/login')
    def login():
        redirect_uri = url_for('authorize', _external=True)
        return github.authorize_redirect(redirect_uri)

    @app.route('/authorize')
    def authorize():
        token = github.authorize_access_token()
        # you can save the token into database
        profile = github.get('/user', token=token)
        return jsonify(profile)

Follow the documentation below to find out more in detail.

- OAuth 1 Session
  - Initialize OAuth 1.0 Client
  - Fetch Temporary Credential
  - Redirect to Authorization Endpoint
  - Fetch Access Token
  - Access Protected Resources
  - Using OAuth1Auth
- OAuth 2 Session
  - OAuth2Session for Authorization Code
  - OAuth2Session for Implicit
  - OAuth2Session for Password
  - OAuth2Session for Client Credentials
  - Client Authentication
  - Access Protected Resources
  - Refresh & Auto Update Token
  - Revoke and Introspect Token
  - Compliance Fix for non Standard
  - OAuth 2 OpenID Connect
  - AssertionSession
- OAuth for Requests
  - Requests OAuth 1.0
  - Requests OAuth 2.0
  - Requests OpenID Connect
  - Requests Service Account
  - Close Session Hint
  - Self-Signed Certificate
- OAuth for HTTPX
  - HTTPX OAuth 1.0
  - HTTPX OAuth 2.0
  - Async OAuth 1.0
  - Async OAuth 2.0
  - Async Service Account
  - Close Client Hint
- Web OAuth Clients
  - Log In with OAuth 1.0
  - Using OAuth 2.0 to Log In
  - Accessing OAuth Resources
  - OAuth 2.0 Enhancement
  - OpenID Connect & UserInfo
- Flask OAuth Client
  - Configuration
  - Using Cache for Temporary Credential
  - Routes for Authorization
  - Accessing OAuth Resources
  - Auto Update Token via Signal
  - Flask OpenID Connect Client
  - Examples
- Django OAuth Client
  - Configuration
  - Saving Temporary Credential
  - Routes for Authorization
  - Auto Update Token via Signal
  - Django OpenID Connect Client
- Starlette OAuth Client
  - Configuration
  - Register Remote Apps
  - Enable Session for OAuth 1.0
  - Routes for Authorization
  - Starlette OpenID Connect
  - Examples
- FastAPI OAuth Client
  - FastAPI OAuth 1.0 Client
  - FastAPI OAuth 2.0 Client
- Client API References
  - Requests OAuth Sessions
  - HTTPX OAuth Clients
  - Flask Registry and RemoteApp
  - Django Registry and RemoteApp
  - Starlette Registry and RemoteApp