SteamのOpenIDを使ってみた
Steamのアカウントで外部サイトで認証できる仕組みを試しに作ってみた。TF2のOutpostだかなんだかあのへんのトレードサイトでも使われてるやつね。
一応動くデモ http://kymt.me:8888/
ソースコード https://bitbucket.org/kimoto/oidon/src
omniauthのプラグインに、omniauth-steamってのがあってそれ使ったら簡単だった。
こっちのサーバー側が取得できる情報は以下。たいしたものはなくて、まぁ安全かなという気はする。realnameって危険そうなフィールドあるけど実質的にこれは誰も真面目に使ってないフィールドなのでOK
{ :provider => "steam", :uid => "76561198010202071", :info => { :nickname => "Reu", :name => "Rodrigo Navarro", :location => "BR", :image => "http://media.steampowered.com/steamcommunity/public/images/avatars/3c/3c91a935dca0c1e243f3a67a198b0abea9cf6d48_medium.jpg", :urls => { :Profile => "http://steamcommunity.com/id/rnavarro1/" } }, :credentials => {}, :extra => { :raw_info => { :steamid => "76561198010202071", :communityvisibilitystate => 3, :profilestate => 1, :personaname => "Reu", :lastlogoff => 1325637158, :profileurl => "http://steamcommunity.com/id/rnavarro1/", :avatar => "http://media.steampowered.com/steamcommunity/public/images/avatars/3c/3c91a935dca0c1e243f3a67a198b0abea9cf6d48.jpg", :avatarmedium => "http://media.steampowered.com/steamcommunity/public/images/avatars/3c/3c91a935dca0c1e243f3a67a198b0abea9cf6d48_medium.jpg", :avatarfull => "http://media.steampowered.com/steamcommunity/public/images/avatars/3c/3c91a935dca0c1e243f3a67a198b0abea9cf6d48_full.jpg", :personastate => 1, :realname => "Rodrigo Navarro", :primaryclanid => "103582791432706194", :timecreated => 1243031082, :loccountrycode => "BR" } } }