# Steam Authentication & Integration

**URL:** https://meta.discourse.org/t/steam-authentication-integration/68413
**Category:** Marketplace
**Created:** [August 20, 2017, 7:48am UTC](https://meta.discourse.org/t/steam-authentication-integration/68413 "2017-08-20T07:48:57Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Morell](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/morell/32/119584_2.png) [@Morell](https://meta.discourse.org/u/Morell)
#### Post date: [August 20, 2017, 7:48am UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/1 "2017-08-20T07:48:57Z")

</div>

**What would you like done?**  
Steam integration like this: [Unmaintained - Steam Authentication & Integration | XenForo community](https://xenforo.com/community/resources/steam-authentication-integration.1336/) (games stats not necessary).

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

 ![](https://global.discourse-cdn.com/meta/original/3X/f/1/f153aad8a75313a076bac9fde439999a7c52b197.png)

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

 ![](https://global.discourse-cdn.com/meta/original/3X/9/7/9779454749be0a0270d103c90c9cd12bb037d195.png)

- Xenforo steam auth importer to discourse.

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

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [August 20, 2017, 2:07pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/2 "2017-08-20T14:07:52Z")

</div>

There is a [steam plugin](https://meta.discourse.org/t/steam-login-authentication-plugin/18153) 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.

---

<div class="post-metadata">

### Author: ![Morell](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/morell/32/119584_2.png) [@Morell](https://meta.discourse.org/u/Morell)
#### Post date: [August 20, 2017, 2:32pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/3 "2017-08-20T14:32:51Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [August 20, 2017, 2:59pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/4 "2017-08-20T14:59:13Z")

</div>

@david, does [Discourse Chat Integrations](https://meta.discourse.org/t/chatroom-integration-plugin-discourse-chat-integration/66522) 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.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [August 20, 2017, 3:01pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/5 "2017-08-20T15:01:40Z")

</div>

> [@pfaffman](#):
>
> @David\_Taylor, does Chatroom Integration Plugin (discourse-chat-integration) have hooks that could help here?

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.

---

<div class="post-metadata">

### Author: ![Morell](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/morell/32/119584_2.png) [@Morell](https://meta.discourse.org/u/Morell)
#### Post date: [August 20, 2017, 3:13pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/6 "2017-08-20T15:13:53Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [August 20, 2017, 3:17pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/7 "2017-08-20T15:17:34Z")

</div>

> [@Morell](#):
>
> But this is a big limitation right?

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](https://discourse.org/pricing) and pay for a year’s hosting up front.

---

<div class="post-metadata">

### Author: ![LeoMcA](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/leomca/32/87233_2.png) [@LeoMcA](https://meta.discourse.org/u/LeoMcA)
#### Post date: [August 21, 2017, 12:47pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/8 "2017-08-21T12:47:54Z")

</div>

> [@pfaffman](#):
>
> it’s non-trivial and will take changes to core.

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`](https://github.com/discourse/discourse-steam-login). Here’s how I’d go about it (if I had the time):

> [@Morell](#):
>
> you can’t add a steam account on an existing discourse account

- 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

> [@Morell](#):
>
> you can’t see the steam profile of a discourse user

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.

> [@Morell](#):
>
> And you can’t import steam auth from other forum CMS.

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

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [August 21, 2017, 2:16pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/9 "2017-08-21T14:16:36Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Morell](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/morell/32/119584_2.png) [@Morell](https://meta.discourse.org/u/Morell)
#### Post date: [August 21, 2017, 2:33pm UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/10 "2017-08-21T14:33:53Z")

</div>

I’m working on a new version of importer: [discourse/script/import\_scripts/xenforo.rb at bac2e2bfea68fd0c8f082b720f43dabfc17d5d60 · JMorell/discourse · GitHub](https://github.com/JMorell/discourse/blob/bac2e2bfea68fd0c8f082b720f43dabfc17d5d60/script/import_scripts/xenforo.rb)

---

<div class="post-metadata">

### Author: ![Morell](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/morell/32/119584_2.png) [@Morell](https://meta.discourse.org/u/Morell)
#### Post date: [August 26, 2017, 9:49am UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/11 "2017-08-26T09:49:24Z")

</div>

Something new? We need this modification…

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [September 25, 2017, 9:49am UTC](https://meta.discourse.org/t/steam-authentication-integration/68413/12 "2017-09-25T09:49:40Z")

</div>

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