Accesso richiesto per paese

Ciao :waving_hand:

Sto cercando un modo per rendere obbligatorio il login al sito per paese. Ho trovato questo plugin Geo Blocking plugin che è probabilmente il più vicino al mio caso d’uso, ma Ruby è decisamente fuori dalla mia portata al momento… ancora. Penso che quel plugin possa essere modificabile per ottenere questo modo di abilitare login required per paesi specifici e reindirizzare a /login?

Grazie per qualsiasi consiglio! :slightly_smiling_face:

3 Mi Piace

Ciao :waving_hand:

Il motivo principale per cui ho dovuto apportare questa modifica è una nuova normativa specifica del paese che influisce sul mio sito. Il mio sito e l’argomento sono disponibili solo per adulti maggiorenni. Ma non volevo compromettere la SEO. Quindi la prima cosa a cui ho pensato è stata rendere il sito accessibile solo tramite login in un paese specifico, in questo modo Google bot e altri potranno scansionare il sito in altri paesi. Il requisito di accesso completo non sembra essere una buona opzione in quanto blocca l’intero sito e i suoi contenuti.

Ho deciso di renderlo lato client, sembra un’altra buona opzione, quindi ho utilizzato un accesso richiesto in modo “soft” lato client. Questo sembra sufficiente per ora, quindi ho iniziato con questo.

:warning: Penso che non sia la migliore idea condividere qui il codice completo che utilizzo perché probabilmente non è il migliore per altri casi d’uso e probabilmente non è la versione finale e ovviamente modifica in modo significativo il sistema di accesso.


L’intero processo funziona ora con due componenti tematici separati che potrebbero essere uniti in futuro.

Ma prima di farlo, ho dovuto modificare alcune altre cose. Prima di tutto, i bot selezionati che desideriamo sono esentati da questo intero processo e possono ancora scansionare il sito. Discourse ha una pagina di accesso statica che è attiva quando l’impostazione del sito “richiedi accesso” è abilitata. Senza questo, quando vai su sito.com/login verrai reindirizzato alla home page effettiva del sito e si aprirà la finestra di dialogo di accesso. Ho disabilitato questa funzione e l’ho fatta in modo da mantenere i visitatori sulla pagina /login. Ci sono anche altre parti nel file JavaScript dell’applicazione che ho dovuto modificare. Ad esempio: canDisplaySidebar() per nascondere la barra laterale ai visitatori. loginRequired() per non richiedere l’impostazione del sito e essere abilitato ai visitatori. showSiteHeader per renderizzare l’intestazione solo quando lo desideriamo, viene renderizzata quando il cookie correlato è abilitato.

  1. Il primo componente tematico. (Policy Gate)

Per ottenere questo, ho modificato in modo significativo questo componente GitHub - discourse/discourse-splash-screen: A welcome splash screen for first time users

Ho aggiunto un “gate” per i 18+ (Hai più di 18 anni?) e altre informazioni nella prima schermata.

Se il visitatore clicca No, aggiungerà un elemento nello store chiave-valore che distruggerà la pagina 18+ e reindirizzerà il visitatore a un articolo pubblicato che abbiamo scritto su come le dipendenze influiscono sui giovani e perché il nostro sito è solo per adulti… e inserirà uno store chiave-valore per mantenere i visitatori su quella pagina. Quindi lo store chiave-valore fa due cose.

  1. Distrugge l’intera pagina 18+ in modo che il visitatore non possa cambiare la sua risposta se clicca No.
  2. Li reindirizza sempre all’articolo.

Se il visitatore clicca , salta alla seconda schermata che riguarda le informazioni sui cookie. Qui, i visitatori possono essere informati sui cookie che utilizziamo. Cliccando sul pulsante Va bene, ho capito inseriamo un cookie di consenso ai cookie nel browser per 1 anno. Questo è importante perché utilizziamo questa parte del componente anche per gli utenti con accesso effettuato. Devono acconsentire alla politica sui cookie ogni anno. Quindi il cookie di consenso ai cookie fa tre cose.

  1. Distrugge la pagina dei cookie.
  2. Renderizza l’intestazione (contiene i pulsanti di accesso, registrazione).
  3. Renderizza il secondo componente e la pagina di accesso. :arrow_down_small:

  1. Secondo componente tematico. (Gated Site)

Questo componente tematico crea il modello della pagina di accesso, qualcosa come i componenti tematici Guest Gate o Gated Category, ma viene renderizzato in base all’URL e a pagina intera. Ha due impostazioni.

URL consentito e uno per URL non consentito.

  1. Il valore dell’URL consentito è * il che significa che renderizza il gate su tutti gli URL.
  2. Il valore dell’URL non consentito è dove non vogliamo renderizzare il gate. Ad esempio: /about , /tos, /faq , /privacy , altre pagine di registrazione ecc…

Quando viene renderizzato, effettua reindirizzamenti automatici alla pagina /login. Ho sovrascritto l’intero modello della pagina di accesso statica con il mio modello che contiene le parti di accesso social ecc… Non renderizziamo il componente sulla pagina /login.


Questo è all’incirca ciò che ho fatto per raggiungere questo obiettivo.

3 Mi Piace

Molto interessante, Don! Grazie per aver condiviso i dettagli. :+1:

2 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.