Problemi con SSO e carattere '~'

Sembra che urlsafe_b64encode sostituisca alcuni caratteri nella codifica base64. Dalla documentazione:

Codifica l’oggetto s simile a byte utilizzando l’alfabeto sicuro per URL e file system, che sostituisce - invece di + e _ invece di / nell’alfabeto Base64 standard e restituisce i byte codificati. Il risultato può ancora contenere =.

Ciò significa che il risultato non è base64 standard e non sarà compatibile con la decodifica di Discourse.

Consiglierei di utilizzare invece la normale funzione b64encode. La tua libreria HTTP dovrebbe occuparsi dell’escape degli URL, se necessario.

5 Mi Piace