Comment utiliser la vérification OAuth personnalisée avec DiscourseConnect ?

J’essaie de tout basculer vers l’utilisation de mes méthodes OAuth, et Discourse est la dernière chose sur ma liste.
Les choses que j’aimerais compléter si c’est une fonctionnalité :

  1. Comment créer des champs utilisateur publics/privés à afficher sur leur page utilisateur à leur sujet ? Comme Rang du groupe que tout le monde peut voir, mais comme ID Discord que seuls les administrateurs et les modérateurs peuvent voir (ainsi que l’API) ?

Aussi, comment implémenter cela en Python en utilisant Quart ? Voici un code que j’ai programmé, bien que la documentation soit très peu claire sur la manière de passer des données pour Discourse et comment faire, y compris les champs utilisateur, et essayer de faire en sorte que les utilisateurs ne puissent pas les modifier.

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),
        
        # Ces éléments j'aimerais qu'ils soient des champs utilisateur (publics ou privés)
        "group_rank": group_rank,  # Champ utilisateur public
        "discord_id": discord_id,  # Champ utilisateur privé
        "roblox_id": roblox_info.user.id, # Champ utilisateur privé
    }

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

Chaque fois que je parle des champs utilisateur, je veux dire ceux qui se trouvent dans le lien du profil utilisateur :

Je remonte ce sujet car j’ai toujours besoin d’aide.

J’ai toujours besoin d’aide pour cela - Je n’ai pas encore trouvé la solution.

Mise à jour concernant ma question :

  1. Dois-je encoder l’URL en base64 ou puis-je la laisser normale sans l’encoder ?
  2. Comment renverrais-je les données ? Est-ce quelque chose comme :
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),

        # Ceux-ci, je voudrais qu'ils soient des champs utilisateur (publics ou privés)
        "group_rank": group_rank,  # Champ utilisateur public
        "discord_id": discord_id,  # Champ utilisateur privé
        "roblox_id": roblox_info.user.id, # Champ utilisateur privé
    }