如何使用Firebase实施Steamvalidation?

我发现的只是这个旧的答案:

https://groups.google.com/forum/#!topic/firebase-talk/rApG8QQd6t4

同事是否知道任何信息,或者Firebase工程师能否提供更详细的答案?

我目前正在尝试使用此库来validation用户使用Steam:

https://github.com/liamcurry/passport-steam

然后使用Firebase自定义令牌在我的Firebase身份validation系统中获取用户。

我不知道这是否正确。 无论如何,我卡住了。


编辑:

这是我现在的代码:

app.js

var passport = require('passport'); var SteamStrategy = require('passport-steam').Strategy; app.use(passport.initialize()); passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(obj, done) { done(null, obj); }); passport.use(new SteamStrategy({ returnURL: 'http://localhost:8080/users/steam/return', realm: 'http://localhost:8080/', apiKey: steamKey.steam, stateless:true }, function(identifier, profile, done) { profile.identifier = identifier; return done(null, profile); } )); 

users.js

  router.get('/steam', passport.authenticate('steam', { failureRedirect: 'login' }), function(req, res, next) { }); router.get('/steam/return', function(req, res, next) { req.url = req.originalUrl; next(); }, passport.authenticate('steam', { failureRedirect: 'users/login' }), function(req, res) { console.log(JSON.stringify(req.query)); var oid = req.query["openid.claimed_id"]; var array = oid.split("/id/"); console.log("Array: "+array); var result = array[1]; console.log(result); admin.auth().createCustomToken(result) .then(function(customToken) { res.render("users/login",{token: customToken, passed: true}); }) .catch(function(error) { console.log("Error creating custom token:", error); }); }); 

用户/ login.ejs:

 <a href="steam"><img id="steamLogin" src="../../public/assets/steamLogin.png"/></a> <script> if ("<%=passed%>" == "true") { firebase.auth().signInWithCustomToken("<%=token%>").catch(function(error) { if (error) { alert(error); } else { res.redirect("screenshots/index"); } }); } </script> 

我目前的问题如下:

1)这个工作,但暴露蒸汽声称的ID作为用户的公共UID。 公开用户声明的ID是否安全? 这不意味着任何人都可以使用他声称的ID来冒充我的用户吗?

2)我的Firebase身份validation信息中心中的“标识符”下没有任何内容。 签入用户时如何指定标识符?

3)实际上,创build自定义令牌时应该使用什么作为uid