CSRF errato su richiesta da sessione clonata con Python

Sono un moderatore su un forum Discourse e volevo scrivere un programma Python che clonasse i cookie di sessione dal browser ed eseguisse una semplice azione utente, come mettere un “mi piace” a un post. Sono riuscito a clonare la sessione e ho potuto utilizzare richieste GET per accedere a qualsiasi pagina, anche alle categorie private (quindi so che la sessione è stata clonata con successo), ma quando ho provato a mettere semplicemente un “mi piace” a un post con una richiesta POST ho ricevuto l’errore “Bad CSRF”. Dopo un’indagine ho notato che nessun token CSRF veniva generato nella richiesta. Vorrei sapere perché i token CSRF vengono generati nel browser, ma non in questa sessione clonata. C’è un modo per ottenere un token CSRF per la richiesta? Il mio codice semplice è riportato di seguito.

import requests
import browsercookie

cj = browsercookie.firefox()

r = requests.post("https://somediscoursesite.com/post_actions", data={'id':'theid','post_action_type_id':'2','flag_topic':'false'}, cookies=cj)

print(r.status_code)
print(r.request.headers)

Questo sarà utilizzato da tutti gli utenti, solo dallo staff o solo da te? Credo che il punto sia: se è solo per aiutarti con la moderazione, sarebbe meglio usare una chiave API o generare delle chiavi API specifiche per determinati utenti dello staff.

Intendo che debba essere utilizzato da qualsiasi utente connesso. Fondamentalmente, voglio prendere la sessione dell’utente e consentirgli di eseguire azioni in modo programmatico con Python, in particolare mettere ‘mi piace’ ai post. So che sarebbe molto più semplice utilizzare una chiave di amministratore, ma voglio che sia disponibile per qualsiasi utente e, dato che un utente può mettere ‘mi piace’ a un post dal browser, perché non dovrebbe essere possibile eseguirlo in modo programmatico dal proprio dispositivo con una sessione clonata nel prompt dei comandi?