Wauplin HF Staff commited on
Commit
48d58d8
·
1 Parent(s): ccfc5fe

oauth in iframe

Browse files
Files changed (2) hide show
  1. app.py +2 -1
  2. auth.py +6 -6
app.py CHANGED
@@ -36,7 +36,8 @@ def show_profile(request: gr.Request) -> str:
36
 
37
  def js_open(url: str) -> str:
38
  # Taken from https://cmgdo.com/external-link-in-gradio-button/
39
- return f"function() {{window.open('{url}', '_blank');}}"
 
40
 
41
 
42
  with gr.Blocks() as demo:
 
36
 
37
  def js_open(url: str) -> str:
38
  # Taken from https://cmgdo.com/external-link-in-gradio-button/
39
+ return f"function() {{window.location.assign('{url}');}}"
40
+ # return f"function() {{window.open('{url}', '_blank');}}"
41
 
42
 
43
  with gr.Blocks() as demo:
auth.py CHANGED
@@ -3,7 +3,7 @@ import os
3
  from authlib.integrations.starlette_client import OAuth
4
  from fastapi import FastAPI
5
  from fastapi.requests import Request
6
- from fastapi.responses import HTMLResponse
7
  from starlette.middleware.sessions import SessionMiddleware
8
 
9
 
@@ -30,7 +30,7 @@ oauth.register(
30
 
31
  # Hack to close the login/logout page once the user is logged in/out.
32
  # TODO: can it be less hacky?
33
- CLOSE_WINDOW_HTML = HTMLResponse("<script>window.close();</script>")
34
 
35
 
36
  async def oauth_login(request: Request):
@@ -40,15 +40,15 @@ async def oauth_login(request: Request):
40
  return await oauth.huggingface.authorize_redirect(request, redirect_uri)
41
 
42
 
43
- async def oauth_logout(request: Request) -> HTMLResponse:
44
  request.session.pop("user", None)
45
- return CLOSE_WINDOW_HTML
46
 
47
 
48
- async def oauth_redirect_callback(request: Request) -> HTMLResponse:
49
  token = await oauth.huggingface.authorize_access_token(request)
50
  request.session["user"] = token["userinfo"] # TODO: we should store entire token
51
- return CLOSE_WINDOW_HTML
52
 
53
 
54
  def attach_oauth(app: FastAPI) -> None:
 
3
  from authlib.integrations.starlette_client import OAuth
4
  from fastapi import FastAPI
5
  from fastapi.requests import Request
6
+ from fastapi.responses import RedirectResponse
7
  from starlette.middleware.sessions import SessionMiddleware
8
 
9
 
 
30
 
31
  # Hack to close the login/logout page once the user is logged in/out.
32
  # TODO: can it be less hacky?
33
+ # CLOSE_WINDOW_HTML = HTMLResponse("<script>window.close();</script>")
34
 
35
 
36
  async def oauth_login(request: Request):
 
40
  return await oauth.huggingface.authorize_redirect(request, redirect_uri)
41
 
42
 
43
+ async def oauth_logout(request: Request) -> RedirectResponse:
44
  request.session.pop("user", None)
45
+ return RedirectResponse("/")
46
 
47
 
48
+ async def oauth_redirect_callback(request: Request) -> RedirectResponse:
49
  token = await oauth.huggingface.authorize_access_token(request)
50
  request.session["user"] = token["userinfo"] # TODO: we should store entire token
51
+ return RedirectResponse("/")
52
 
53
 
54
  def attach_oauth(app: FastAPI) -> None: