Page 1 of 1

Der Versuch, Discord -Auth zu machen, ohne "CSRF -Warnung zu erhalten! Staat nicht gleich in Anfrage und Antwort".

Posted: 16 Apr 2025, 07:56
by Anonymous
Okay, also mache ich meine erste Desktop -App mit Electron und Fastapi, aber ich bin in einen Roadblock gestoßen. Ich weiß nicht, ob es daran liegt, dass ich Ubuntu als mein Hauptbetrieb benutze oder tatsächlich etwas falsch mache. Ich habe versucht, Chatgpt zu helfen, um zu helfen, aber alles, was mich dazu gebracht hat, die Auth/Discord/Callback && auth/diskordte wie 10 Mal mit demselben Fehler umzuschreiben. Ich habe auch state = keine ausprobiert, aber das funktioniert auch nicht. Wenn jemand, der mehr über Elektronen -Apps weiß, erklären kann, was das Problem sein könnte. class = "Lang-Py PrettyPrint-Override">

Code: Select all

oauth = OAuth()
oauth.register(
name='discord',
client_id=os.getenv("DISCORD_CLIENT_ID"),
client_secret=os.getenv("DISCORD_CLIENT_SECRET"),
authorize_url='https://discord.com/api/oauth2/authorize',
access_token_url='https://discord.com/api/oauth2/token',
api_base_url='https://discord.com/api/',
client_kwargs={'scope': 'identify email'},
state=None
)

@app.get("/auth/discord")
async def login_with_discord(request: Request):
redirect_uri = os.getenv("DISCORD_REDIRECT_URI")
return await oauth.discord.authorize_redirect(request, redirect_uri, state=None)

@app.get("/auth/discord/callback")
async def discord_callback(request: Request):
try:
token = await oauth.discord.authorize_access_token(request, state=None)
except Exception as e:
print(f"/auth/discord/callback Error: {e}")
Hier ist mein login.js :

Code: Select all

document.addEventListener("DOMContentLoaded", () => {
const discordLoginButton = document.getElementById("discord-login");

discordLoginButton.addEventListener("click", () => {
// Redirect to the backend's Discord OAuth login endpoint
const { shell } = require('electron');
shell.openExternal("http://127.0.0.1:8000/auth/discord");

});
});