Der Versuch, Discord -Auth zu machen, ohne "CSRF -Warnung zu erhalten! Staat nicht gleich in Anfrage und Antwort".
Posted: 16 Apr 2025, 07:56
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">
Hier ist mein login.js :
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}")
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");
});
});