Python Flask

pip install Flask Authlib requests certifi cryptography
sudo caddy reverse-proxy --from example.com --to 127.0.0.1:5000
import os
import certifi
from flask import Flask, url_for, session, redirect
from authlib.integrations.flask_client import OAuth

os.environ['REQUESTS_CA_BUNDLE'] = certifi.where()

app = Flask(__name__)
app.secret_key = os.urandom(24)
app.config.update(
    GOOGLE_CLIENT_ID='YOUR_GOOGLE_CLIENT_ID',
    GOOGLE_CLIENT_SECRET='YOUR_GOOGLE_CLIENT_SECRET'
)

oauth = OAuth(app)
google = oauth.register(
    name='google',
    server_metadata_url='https://accounts.google.com/.well-known/openid-configuration',
    client_kwargs={'scope': 'openid email profile'}
)

@app.route('/')
def index():
    user = session.get('user')
    if user:
        return f"Hello, {user.get('email')}. <br><a href='/logout'>Logout</a>"
    return '<a href="/login">Login with Google</a>'

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

@app.route('/auth')
def auth():
    token = google.authorize_access_token()
    user = token.get('userinfo')
    session['user'] = user
    return redirect('/')

@app.route('/logout')
def logout():
    session.pop('user', None)
    return redirect('/')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, ssl_context='adhoc')