Come usare la verifica OAuth personalizzata con DiscourseConnect?

Sto cercando di passare tutto ai miei metodi OAuth e Discourse è l’ultima cosa nella mia lista.
Le cose che mi piacerebbe completare se fosse una funzionalità:

  1. Come potrei creare campi utente pubblici/privati da visualizzare nella loro pagina utente su di loro? Come Group Rank che chiunque può vedere, ma come Discord Id che solo amministratori e moderatori possono vedere (anche API)?

Inoltre, come potrei implementarlo in python usando Quart? Questo è del codice che ho programmato, anche se la documentazione è molto poco chiara su come passare dati per Discourse e come fare, inclusi i Campi Utente, e cercare di farli in modo che gli utenti non possano modificarli.

from quart import Quart, redirect, request
from rblxopencloud import OAuth2App, Group
from roblox import RobloxUser

oauth_app = OAuth2App("ROBLOX_APP_ID", "ROBLOX_APP_SECRET", "ROBLOX_APP_REDIRECT")
app = Quart(__name__)
    
@app.route("/")
async def authentication_verify():
    return redirect(oauth_app.generate_uri(["openid", "profile"]))

@app.route("/authentication/redirect")
async def authentication_redirect():
    roblox_info = oauth_app.exchange_code(request.args.get('code'))
    
    group_member: Group = RobloxUser.fetch_member(roblox_info.user, 4800717)
    group_rank = "Test Subject"
    
    if group_member != None:
        group_rank = group_member.fetch_role().name
    
    
    discord_id = "this-will-pull-from-my-db"
    
    return {
        "permalink": roblox_info.user.username,
        "username": roblox_info.user.username, 
        "uri": roblox_info.user.profile_uri, 
        "avatar_url": roblox_info.user.generate_headshot(size=420, format="jpeg", is_circular=True),
        
        # Questi vorrei che fossero campi utente (pubblici o privati)
        "group_rank": group_rank,  # Campo Utente Pubblico
        "discord_id": discord_id,  # Campo Utente Privato
        "roblox_id": roblox_info.user.id, # Campo Utente Privato
    }

app.run(host="host-ip-here", port=0000)

Ogni volta che parlo dei campi Utente, intendo questo che si trova nel link del profilo Utente:

riuppando questo perché ho ancora bisogno di aiuto.

Ho ancora bisogno di aiuto con questo - non l’ho ancora capito.

Aggiornamento sulla mia domanda:

  1. Devo codificare l’URL con base64 o posso lasciarlo normale senza codificarlo?
  2. Come restituirei i dati? È qualcosa del tipo:
return {
        "permalink": roblox_info.user.username,
        "username": roblox_info.user.username,
        "uri": roblox_info.user.profile_uri,
        "avatar_url": roblox_info.user.generate_headshot(size=420, format="jpeg", is_circular=True),

        # Questi vorrei che fossero campi utente (pubblici o privati)
        "group_rank": group_rank,  # Campo Utente Pubblico
        "discord_id": discord_id,  # Campo Utente Privato
        "roblox_id": roblox_info.user.id, # Campo Utente Privato
    }