The*_*mer 11 javascript node.js firebase steam firebase-authentication
我发现的只有这个老答案:
https://groups.google.com/forum/#!topic/firebase-talk/rApG8QQd6t4
SOer的同事是否知道任何信息,或者Firebase工程师能否提供更详细的答案?
我目前正在尝试使用此库对Steam用户进行身份验证:
https://github.com/liamcurry/passport-steam
然后使用Firebase自定义令牌在Firebase身份验证系统中获取用户.
我不知道这是不是正确的方法.无论如何,我被卡住了.
编辑:
这是我目前的代码:
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);
}
));
Run Code Online (Sandbox Code Playgroud)
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);
});
});
Run Code Online (Sandbox Code Playgroud)
用户/ 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>
Run Code Online (Sandbox Code Playgroud)
我目前的问题如下:
1)这有效,但将Steam声明的ID公开为用户的公共UID.公开用户声明的ID是否安全?这是否意味着任何人都不能通过使用他声称的ID冒充我的用户?
2)我的Firebase Auth仪表板中的"Identifier"下没有任何内容.在登录用户时如何指定标识符?
3)实际上,uid
在创建自定义令牌时应该使用什么?
归档时间: |
|
查看次数: |
1232 次 |
最近记录: |