diff --git a/app.py b/app.py index 370dd27..17df619 100644 --- a/app.py +++ b/app.py @@ -117,13 +117,23 @@ def callback(): user = sp.current_user() session["user"] = user - return redirect("/playlists") + # Setze ein 30-Tage-Cookie mit Userdaten (ohne Token!) + resp = redirect("/playlists") + user_cookie = json.dumps({ + "id": user.get("id"), + "display_name": user.get("display_name"), + "email": user.get("email"), + "images": user.get("images"), + }) + resp.set_cookie("quizify_user", user_cookie, max_age=60*60*24*30, httponly=True, samesite="Lax") + return resp @app.route("/playlists") def playlists(): sp = get_spotify_client() playlists = sp.current_user_playlists()["items"] - return render_template("playlists.html", playlists=playlists, translations=get_translations()) + user = get_user_from_cookie() + return render_template("playlists.html", playlists=playlists, translations=get_translations(), user=user) @app.route("/quiz/") def quiz(playlist_id): @@ -169,6 +179,7 @@ def quiz(playlist_id): } all_tracks.append(track_info) + user = get_user_from_cookie() return render_template( "quiz.html", track=track, @@ -180,7 +191,8 @@ def quiz(playlist_id): total_questions=len(tracks), score=score, answered=answered, - translations=get_translations() + translations=get_translations(), + user=user ) @app.route("/search_track", methods=["POST"]) @@ -282,7 +294,9 @@ def toggle_playback(): @app.route('/logout') def logout(): session.clear() - return redirect(url_for('home')) + resp = redirect(url_for('home')) + resp.set_cookie("quizify_user", "", expires=0) + return resp @app.route("/reset_quiz/") def reset_quiz(playlist_id): @@ -318,5 +332,14 @@ def guest_join(token): resp.set_cookie("guest_token", token, max_age=60*60) # 1 Stunde gültig return resp +def get_user_from_cookie(): + user_cookie = request.cookies.get("quizify_user") + if user_cookie: + try: + return json.loads(user_cookie) + except Exception: + return None + return None + if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True) diff --git a/templates/playlists.html b/templates/playlists.html index c16b537..4c0d308 100644 --- a/templates/playlists.html +++ b/templates/playlists.html @@ -143,6 +143,13 @@ + {% if user %} +
+ + {{ user.display_name }} +
+ {% endif %} +