MCPcopy
hub / github.com/wandb/openui / callback

Function callback

backend/openui/server.py:312–358  ·  view source on GitHub ↗
(request: Request, error: str = "", error_description: str = "")

Source from the content-addressed store, hash-verified

310
311@router.get("/v1/callback", tags="openui/oauth")
312async def callback(request: Request, error: str = "", error_description: str = ""):
313 try:
314 # if we've been given an error
315 if error != "":
316 logger.error("Oauth Error (%s): %s", error, error_description)
317 message = "An error occurred when attempting to login with GitHub, please try again."
318 if error == "bad_verification_code":
319 message = "The code passed is incorrect or expired."
320 elif error == "unverified_user_email":
321 message = "You must verify your email address with GitHub to login."
322 elif error == "redirect_uri_mismatch":
323 message = "GitHub is not configured with the appropriate redirect url."
324 elif error == "incorrect_client_credentials":
325 message = "The application is not configured to login with GitHub, invalid client credentials"
326 elif error == "application_suspended":
327 message = "This application has been suspended by GitHub and can't accept new logins."
328 elif error == "access_denied":
329 message = "You've denied us access to verify your email with GitHub."
330 raise ValueError(message)
331 with github_sso:
332 id_token = await github_sso.verify_and_process(request)
333 # TODO: should probably key off email / update info
334 user = User.get_or_none(User.username == id_token.display_name)
335 if user is None:
336 user_id = uuid.uuid4()
337 user = User.create(
338 id=user_id.bytes,
339 username=id_token.display_name,
340 email=id_token.email,
341 created_at=datetime.now(),
342 )
343 user.id = user_id
344 elif not user.email:
345 user.email = id_token.email
346 user.save()
347 request.session["session_id"] = session_store.generate_session_id()
348 request.session["user_id"] = str(user.id)
349 session_store.write(
350 request.session["session_id"],
351 str(user.id),
352 SessionData(username=user.username, token_count=0),
353 )
354 return RedirectResponse(url="/ai/new")
355 except Exception as e:
356 response = RedirectResponse(url="/ai/new")
357 response.set_cookie("error", str(e))
358 return response
359
360
361@router.post(

Callers 3

ExamplesFunction · 0.85
createOrRefineFunction · 0.85
convertFunction · 0.85

Calls 3

generate_session_idMethod · 0.80
writeMethod · 0.80
SessionDataClass · 0.70

Tested by

no test coverage detected