L'app mobile Android di Discourse Hub non riesce a trovare il server privato

Il mio server Discourse privato funziona ed è accessibile tramite browser e app mobile iOS.

Tuttavia, su Android, Discourse Hub non riesce a trovare il server. (Riesce a trovare altri server come meta.discourse.org.)

Qualche idea sul perché questo fallisca? Potrebbe essere che l’app mobile Android utilizzi un agente crawler diverso per accedere al server rispetto alla versione iOS? O qualche altra ragione?

Sì, l’app mobile effettua alcune richieste specifiche per determinare che l’URL è un server Discourse.

Ci sono due richieste:

  • una richiesta HEAD a serverdomain.com/user-api-key/new
  • una richiesta GET a serverdomain.com/site/basic-info.json

Se una delle due non restituisce dati, l’app presumirà che l’URL non sia un sito Discourse.

1 Mi Piace

Molto utile, @pmusaraj! Grazie. Per dare seguito:

1- La richiesta GET ottiene una risposta, ma l’istruzione HEAD restituisce un errore ‘valore non valido’. (Questo è vero anche per meta.discourse.org, eppure entrambe le app mobili possono connettersi a questa istanza.) Come modifico il server per produrre una risposta corretta alla richiesta HEAD?

2- Perché la versione iOS supera questi test con successo e si connette al mio server?

1 Mi Piace

Ah, questo è un’indicazione che il lato Discourse è molto probabilmente a posto, la verifica del sito è la stessa su iOS e Android.

Ricordo che alcune versioni/dispositivi Android sono più rigorosi con i certificati SSL, c’è stato un caso simile in passato, ma molto tempo fa: Community not found in App Android Version 7 - #37 by h.vdheurik

1 Mi Piace

Per quanto possa valere, ho fatto testare questo a un amico usando un Android stock con lo stesso risultato. Il mio dispositivo è un Pixel 8a con l’ultima versione di GrapheneOS.

Potrebbe trattarsi di una nuova incompatibilità di cifrario simile a quella a cui hai fatto riferimento nel 2017?

Non lo so. Se vuoi inviarmi l’URL del sito in privato, posso eseguire un debug più approfondito.

Abbiamo controllato i crawler. Il mio server ha bloccato molti crawler e sembra che uno di essi impedisse la connessione all’app mobile. Dopo aver ripristinato le impostazioni di fabbrica, l’app è stata in grado di connettersi.

Quindi ho aggiunto okhttp come unico crawler consentito e l’app mobile è stata comunque in grado di connettersi. Crisi sventata. :slight_smile:

Grazie a @pmusaraj per aver controllato il codice dell’app Android e aver trovato questa soluzione.

2 Mi Piace