J’utilise Discourse pour une communauté de jeu où la possibilité de dissocier vos comptes Steam et Discord n’a aucun sens et ne ferait que créer des problèmes. Comment puis-je empêcher les utilisateurs de dissocier leurs comptes ? Je sais que le plugin SAML l’empêche, mais comme j’utilise Discourse pour faciliter la synchronisation des rangs à la fois dans le jeu et sur Discord, je ne veux vraiment pas que les utilisateurs se délient. Si quoi que ce soit, je préférerais devoir le faire manuellement.
À titre d’information, du côté administrateur, serait-il possible d’afficher les identifiants Steam64 et Discord ? Ils ne sont pas vraiment confidentiels en soi, et ce serait une information très utile d’avoir immédiatement à portée de main. Ils ne sont pas non plus exposés via l’API, ce qui est assez limité pour mon cas d’utilisation.
Cela réglerait partiellement le problème, mais quelqu’un saurait-il s’il existe un moyen de rendre cela impossible ? Ils pourraient théoriquement simplement ouvrir l’inspecteur d’éléments du navigateur et le réafficher.
Ce qui m’a semblé intéressant, c’est la partie « can revoke » (peut révoquer). Je ne suis pas très sûr de pouvoir modifier l’authentification Discord intégrée. Quelqu’un sait-il si cela est possible ?
Edit 2 : J’ai essayé de modifier la connexion Steam sur Discourse, mais sans succès (probablement à cause de mon manque de connaissances en Ruby). Voici ce que j’ai tenté :
# frozen_string_literal: true
# name: Steam authentication with Discourse
# about: Authenticate with Discourse with Steam
# version: 2.0.1
# author: J. de Faye, tgxworld
# omniauth-openid is not included in core since v2.4.0.beta10
unless defined? OmniAuth::Strategies::OpenID
gem 'ruby-openid', '2.9.2', require: false
gem 'rack-openid', '1.3.1', require: false
gem 'omniauth-openid', '1.0.1'
end
gem 'omniauth-steam', '1.0.6'
register_svg_icon "fab-steam" if respond_to?(:register_svg_icon)
def can_revoke?
false
end
register_asset 'stylesheets/steam-login.scss'
[
"../lib/auth/steam_authenticator.rb",
"../lib/validators/enable_steam_logins_validator.rb"
].each { |path| load File.expand_path(path, __FILE__) }
auth_provider authenticator: Auth::SteamAuthenticator.new, icon: 'fab-steam'
Edit : J’étais en train de modifier la mauvaise partie du plugin. J’ai réussi à désactiver complètement la fonctionnalité pour Steam. Il ne me reste plus qu’à trouver comment faire de même pour la connexion Discord, puisque c’est un fichier de base.