Connexion requise par pays

Bonjour :waving_hand:

Je cherche un moyen de rendre la connexion obligatoire pour le site par pays. J’ai trouvé ce plugin Geo Blocking plugin qui est probablement le plus proche de mon cas d’utilisation, mais Ruby est assez hors de ma portée pour le moment… du moins pour l’instant. Je pense que ce plugin est peut-être modifiable pour permettre d’activer login required pour des pays spécifiques et de rediriger vers /login ?

Merci pour tout conseil ! :slightly_smiling_face:

3 « J'aime »

Bonjour :waving_hand:
La raison principale pour laquelle j’ai dû apporter cette modification est une nouvelle réglementation légale spécifique à un pays qui affecte mon site. Mon site et son sujet sont réservés aux adultes de plus de 18 ans. Mais je ne voulais pas nuire au SEO. J’ai donc pensé en premier lieu à rendre le site nécessitant une connexion dans un pays spécifique, de cette façon, le bot Google et d’autres pourront explorer le site dans d’autres pays. Une connexion complète n’est pas une bonne option car elle bloque tout le site et son contenu.

J’ai décidé de rendre cela côté client, ce qui semble être une autre bonne option, donc j’utilise une connexion requise de manière douce côté client. Cela semble suffisant pour le moment, j’ai donc commencé par là.

:warning: Je pense que ce n’est pas la meilleure idée de partager le code complet ici que j’utilise car ce n’est probablement pas le meilleur pour d’autres cas d’utilisation et ce n’est probablement pas la version finale et bien sûr, cela modifie considérablement le système de connexion.


L’ensemble du processus fonctionne maintenant avec deux composants de thème distincts qui pourraient être fusionnés à l’avenir.

Mais avant de faire cela, j’ai dû modifier d’autres choses. Tout d’abord, les bots sélectionnés que nous voulons sont exemptés de tout ce processus et peuvent toujours explorer le site. Discourse a une page de connexion statique qui est active lorsque le paramètre du site login required est activé. Sans cela, lorsque vous allez sur site.com/login, vous serez redirigé vers la page d’accueil réelle du site et la fenêtre modale de connexion s’ouvrira. J’ai désactivé cette fonction et fait en sorte de garder les visiteurs sur la page /login. Il y a aussi d’autres parties dans le fichier js de l’application que j’ai dû modifier. Par exemple : canDisplaySidebar() pour masquer la barre latérale aux visiteurs. loginRequired() pour ne pas exiger le paramètre du site et être accessible aux visiteurs. showSiteHeader pour ne rendre l’en-tête que lorsque nous le souhaitons, il s’affiche lorsque le cookie associé est activé.

  1. Le premier composant de thème. (Porte de politique)

Pour y parvenir, j’ai considérablement modifié ce composant GitHub - discourse/discourse-splash-screen: A welcome splash screen for first time users

J’ai ajouté une porte pour les 18+ (Avez-vous plus de 18 ans ?) et d’autres informations sur le premier écran.

Si le visiteur clique sur Non, il ajoutera un élément dans le magasin clé-valeur qui détruira la page 18+ et redirigera le visiteur vers un article publié que nous avons écrit sur la façon dont les addictions affectent les jeunes et pourquoi notre site est réservé aux adultes… et placera un magasin clé-valeur pour maintenir les visiteurs sur cette page. Ainsi, le magasin clé-valeur fait deux choses.

  1. Il détruit toute la page 18+ afin que le visiteur ne puisse pas changer sa réponse s’il clique sur Non.
  2. Il les redirige toujours vers l’article.

Si le visiteur clique sur Oui, il accède au deuxième écran qui concerne les informations sur les cookies. Ici, les visiteurs peuvent être informés sur les cookies que nous utilisons. En cliquant sur le bouton D’accord, j’ai compris, nous plaçons un cookie de consentement aux cookies dans le navigateur pendant 1 an. Ceci est important car nous utilisons cette partie du composant également pour les utilisateurs connectés. Ils doivent consentir à la politique de cookies chaque année. Ainsi, le cookie de consentement aux cookies fait trois choses.

  1. Il détruit la page de cookies.
  2. Il rend l’en-tête (il contient les boutons de connexion, d’inscription).
  3. Il rend le deuxième composant et la page de connexion. :arrow_down_small:

  1. Deuxième composant de thème. (Site protégé)

Ce composant de thème crée le modèle de page de connexion, quelque chose comme les composants de thème Guest Gate ou Gated Category, mais il s’affiche en fonction de l’URL et sur toute la page. Il a deux paramètres.

URL autorisée et une pour l’URL non autorisée.

  1. La valeur de l’URL autorisée est *, ce qui signifie qu’il affiche la porte sur toutes les URL.
  2. La valeur de l’URL non autorisée est l’endroit où nous ne voulons pas afficher la porte. Par exemple : /about , /tos, /faq , /privacy , autres pages d'inscription etc…

Lorsqu’il s’affiche, il effectue des redirections automatiques vers la page /login. J’ai remplacé tout le modèle de page de connexion statique par mon modèle qui contient les connexions sociales, etc. Nous n’affichons pas le composant sur la page /login.


Voilà à peu près ce que j’ai fait pour y parvenir.

3 « J'aime »

Très intéressant, Don ! Merci de partager les détails à ce sujet. :+1:

2 « J'aime »

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