Skip to main content

OAuth Login for Gradio

Project description

Gradio Login

OAuth Login for Gradio. Currently supports only Google OAuth.

Example App

OAuth Popup Example 1 Logged in view Example 2

Installation

pip install gradiologin

Getting Started

Example Code

  1. Use below code with your own Google OAuth client_id and client_secret (if you don't have it, go to OAuth App Registration)
# app.py

from fastapi import FastAPI
import gradio as gr
import gradiologin as gl

app = FastAPI()
gl.register(
    name='google',
    server_metadata_url= 'https://accounts.google.com/.well-known/openid-configuration',
    client_id='YOUR_CLIENT_ID',
    client_secret='YOUR_CLIENT_SECRET',
    client_kwargs={
        'scope': 'openid email profile',
    },
)

def show_user(request: gr.Request):
    user = gl.get_user(request)
    return gr.update(value=user)

with gr.Blocks() as demo:
    btn_show = gr.Button("Get current user")
    databox = gr.Textbox(interactive=False)
    btn_show.click(show_user, outputs=[databox])

    gl.LogoutButton("Logout")

gradio_app = gl.mount_gradio_app(app, demo, "/app")
  1. Host locally with uvicorn app:app
  2. Navigate to https://localhost:8000

OAuth App registration

Go to Google Developer Console

  1. New Project > Create
  2. APIs & Services > OAuth consent screen > External > Create. Fill required fields.
  3. APIs & Services > Credentials > Create Credentials > OAuth Client ID. Application type: Web application. Authorized JavaScript origins: http://localhost:8000 for development. Authorized redirect URIs: http://localhost:8000/login, http://localhost:8000/auth. In production, change http://localhost:8000 to your domain name. Save client_id and client_secret

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gradiologin-0.0.1.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

gradiologin-0.0.1-py3-none-any.whl (5.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page