我目前有一个游戏的网络项目,我希望用户能够使用谷歌的firebase身份验证登录以分享目前已完成(并且工作正常)的内容。
但我希望人们能够通过Steam进行身份验证(使用Oauth2)
firebase参考/ API(https://firebase.google.com/docs/auth/web/custom-auth)没有帮助,因为我无法找到我需要实施的确切(工作)示例,我也没有有很多Oauth2或Firebase的经验。
来自http://steamcommunity.com/dev我获得了我的API密钥,我应该使用" http://steamcommunity.com/openid"作为提供者。
我试着这样使用它:
var provider = new firebase.auth.OAuthProvider("steamcommunity.com/openid");
firebase.auth().signInWithPopup(provider).catch(function(error)
{
console.log(error.message);
});
这是适用于所有默认提供商(Google,Twitter,Facebook等)的基本功能
但是我得到的是#34;提供商ID不受支持"在控制台中,我显然已经忘记了某些地方,但我真的不知道它到底是什么(我知道我应该从某处输入蒸汽的API秘密)而且我不知道从哪里开始寻找(例如,我是否需要更改firebase设置中的任何内容,..)
如果有人可以帮助我解决我的问题或者指出一个我可以通过的工作示例,那将是非常有帮助的,因为我的谷歌搜索只引导我到官方的火力基础参考和API以及那些避风港到目前为止真的对我很有帮助。
答案 0 :(得分:4)
SELECT
name
, MAX(CASE WHEN rn = 1 THEN hobby END) Hobby1
, MAX(CASE WHEN rn = 2 THEN hobby END) Hobby2
, MAX(CASE WHEN rn = 3 THEN hobby END) Hobby3
, MAX(CASE WHEN rn = 4 THEN hobby END) Hobby4
, MAX(CASE WHEN rn = 5 THEN hobby END) Hobby5
FROM (
SELECT
name
, hobby
, row_number () OVER (PARTITION BY NAME ORDER BY hobby) AS rn
FROM T
) d
WHERE rn <= 5
GROUP BY
d.name
;
目前仅支持现有提供商,尚未扩展为支持其他提供商。
您需要使用自定义身份验证。我只是用谷歌搜索并发现这个库用于身份验证Steam:https://www.npmjs.com/package/steam-login。您可以使用它来登录Steam,然后获取Steam用户ID,使用Firebase管理SDK:https://firebase.google.com/docs/auth/admin/create-custom-tokens使用该Steam UID创建自定义令牌,然后将自定义令牌发送到客户端以完成登录使用firebase.auth.OAuthProvider
:https://firebase.google.com/docs/auth/web/custom-auth
答案 1 :(得分:1)
您可以使用 GCP 提供的 Identity Platform 做到这一点。您可以在以下链接中找到文档。您需要有一个已启用计费功能的 Firebase 项目才能执行此操作。
https://cloud.google.com/identity-platform/docs/web/oidc
首先,您必须在 GCP 控制台中配置新的 OpenID Connect 提供程序。然后,您可以像通常与其他 Firebase 提供的 OAuth 服务一样使用 Firebase OAuthProvider。
我不会在这里解释每一步,因为文档中有你需要知道的一切。