Steam Authentication & Integration

What would you like done?
Steam integration like this: Unmaintained - Steam Authentication & Integration | XenForo community (games stats not necessary).

  • I need to be able to associate a steam account with a discourse account, like this:

  • Login with steam (save steamID64 or something like this)
  • Steam badge on post or profile:

  • Xenforo steam auth importer to discourse.

What is your budget, in $ USD that you can offer for this task?
Open to negotiation.

1 Like

There is a steam plugin that looks like it’ll meet your needs. It does not get an email address from steam (as Steam won’t provide it), but it will pull over avatars.

This plugin is a little useless, you can’t add a steam account on an existing discourse account, and you can’t see the steam profile of a discourse user. And you can’t import steam auth from other forum CMS.

1 Like

@david, does Chatroom Integration Plugin (discourse-chat-integration) have hooks that could help here?

Once such a plugin exists, adding support for it to whatever forum you want to come from would be a separate task.

Don’t think so - discourse-chat-integration has stuff for sending notifications to group chat systems, but nothing that would help with associating user accounts.

1 Like

But this is a big limitation right? All other forum systems have this option with facebook, twitter, google+, etc… This option is very important for my community or other game community. Some players use steam auth and a temp mail for register. Or maybe if a player steal a steam account of another user, discourse user can’t delete the token.

Yes. And from what I’ve read (and it appears that you’ve read it too), it’s non-trivial and will take changes to core. I’m not much of a plugin developer, but my guess is that your best bet will be to become a business customer and pay for a year’s hosting up front.

To do this with the authentication methods provided in core, sure - but for Steam I’m relatively confident you could just extend discourse-steam-login. Here’s how I’d go about it (if I had the time):

  • add a “associate with steam account” button in user preferences with a plugin outlet
  • link it to a plugin-controlled server side route
  • this route handles authenticating the user with steam, fetching the steam user id, and associating it with the user in discourse like so:
    ::PluginStore.set('steam', "steam_uid_#{data[:steam_uid]}", {user_id: user.id })
  • now a user can authenticate using whatever method they’re currently logged in with, or steam, and be logged into the same account

Plugin outlets would come to the rescue here again. Difficult to go into the specifics with no knowledge of what data from Steam you want to show in Discourse, and how the Steam API works. Might be possible entirely client side, might require a small server side piece.

As @pfaffman says, this wouldn’t be part of the plugin, but an importer script.

1 Like

Well, @LeoMcA, if you do the plugin. I’ll do the importer. :slight_smile:

2 Likes

I’m working on a new version of importer: https://github.com/JMorell/discourse/blob/bac2e2bfea68fd0c8f082b720f43dabfc17d5d60/script/import_scripts/xenforo.rb

2 Likes

Something new? We need this modification…

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