Comment définir la langue pour les utilisateurs SSO

Pour un nouvel utilisateur qui ne s’est jamais connecté à Discourse auparavant, cela devrait fonctionner si le paramètre locale est défini dans la charge utile lors de la première connexion de l’utilisateur au site. Par exemple, en utilisant la documentation npm que vous avez liée :

var userparams = {
	// Requis, sinon une exception sera levée
	"nonce": nonce,
	"external_id": "some user id here",
	"email": "some user email",
	// Optionnel
	"username": "some username",
	"name": "some real name",
    "locale": "es"
};

Pour un utilisateur existant qui a déjà un compte sur Discourse, vous devrez ajouter le paramètre locale_force_update à userparams et le définir sur true. Je pense que dans votre cas, vous pourriez inclure le paramètre locale_force_update à la fois lors de la création d’un nouvel utilisateur et lors de la mise à jour d’un utilisateur :

var userparams = {
	// Requis, sinon une exception sera levée
	"nonce": nonce,
	"external_id": "some user id here",
	"email": "some user email",
	// Optionnel
	"username": "some username",
	"name": "some real name",
    "locale": "es",
    "locale_force_update": true
};

Malheureusement, pour mettre à jour la locale, ou tout autre attribut via la charge utile DiscourseConnect, l’utilisateur devra se déconnecter de Discourse, puis se reconnecter. Cela signifie qu’il est peu probable que l’utilisateur obtienne la locale mise à jour immédiatement. Il existe une solution de contournement, mais je ne pense pas qu’elle soit gérée par le package npm discourse-sso. Pour mettre à jour un utilisateur via DiscourseConnect sans qu’il ait à se déconnecter et se reconnecter à Discourse, vous devez appeler la route sync_sso. Les détails sont ici : Sync DiscourseConnect user data with the sync_sso route.

Si vous rencontrez des difficultés pour définir correctement la locale pour les nouveaux utilisateurs, ou pour les utilisateurs qui se déconnectent et se reconnectent après avoir ajouté les paramètres de locale, essayez d’activer le paramètre de site Discourse verbose discourse connect logging. Cela vous permettra de voir les paramètres envoyés à Discourse depuis la page /logs de votre site (située dans Admin / Logs / Error Logs.)

2 « J'aime »