현재 모든 것을 OAuth 방식으로 전환하는 작업의 한가운데 있습니다. Discourse는 제 목록에서 가장 마지막 순서입니다.
기능으로 추가될 수 있다면 완료하고 싶은 항목은 다음과 같습니다:
- 사용자의 프로필 페이지에 표시할 공개/비공개 사용자 필드를 어떻게 생성하나요? 예를 들어, 누구나 볼 수 있는
Group Rank처럼, 또는 관리자 및 모더레이터(그리고 API)만 볼 수 있는Discord Id처럼요.
또한, 이를 Python의 Quart를 사용하여 어떻게 구현할 수 있을까요? 제가 작성한 코드가 있지만, Discourse에 데이터를 전달하는 방법, 특히 사용자 필드를 포함하여 어떻게 전달해야 하는지, 그리고 사용자가 이를 편집하지 못하도록 만드는 방법에 대한 문서가 매우 불명확합니다.
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),
# 이 항목들은 사용자 필드(공개 또는 비공개)로 만들고 싶습니다
"group_rank": group_rank, # 공개 사용자 필드
"discord_id": discord_id, # 비공개 사용자 필드
"roblox_id": roblox_info.user.id, # 비공개 사용자 필드
}
app.run(host="host-ip-here", port=0000)
