[英]Authenticated firebase functions with custom OpenId Connect provider
[英]How can I use Firebase custom auth with an openID provider?
我目前有一个游戏的网络项目,我希望用户能够登录以共享内容,目前使用谷歌的 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 等)的基本功能
但是,我在控制台中收到了“不支持的提供商 ID”,而且我显然在某处忘记了某些内容,但我真的不知道它到底是什么(我知道我应该在某处输入来自 Steam 的 API 秘密),而我是不确定从哪里开始寻找(例如,我是否需要更改 Firebase 设置中的任何内容,..)
如果有人可以帮助我解决我的问题或指出我可以完成的工作示例,那将非常有帮助,因为我的谷歌搜索只让我找到了官方的 Firebase 参考和 API,而到目前为止这些并没有真正帮助我.
firebase.auth.OAuthProvider
目前仅支持现有提供者,尚未扩展以支持其他提供者。 您将需要使用自定义身份验证。 我刚刚用谷歌搜索并找到了这个用于 Steam 身份验证的库: https : //www.npmjs.com/package/steam-login 。 您可以使用它来登录 Steam,然后获取 Steam 用户 ID,使用 Firebase Admin SDK 使用它创建自定义令牌: https ://firebase.google.com/docs/auth/admin/create-custom-tokens 使用该 Steam UID,然后将自定义令牌发送到客户端以使用signInWithCustomToken
完成登录: https : signInWithCustomToken
您可以使用 GCP 提供的 Identity Platform 来做到这一点。 您可以在以下链接中找到文档。 您需要有一个已启用计费功能的 Firebase 项目才能执行此操作。
https://cloud.google.com/identity-platform/docs/web/oidc
首先,您必须在 GCP 控制台中配置新的 OpenID Connect 提供程序。 然后,您可以简单地使用 Firebase OAuthProvider,就像您通常与其他 Firebase 提供的 OAuth 服务一起使用一样。
我不会在这里解释每一步,因为文档中有你需要知道的一切。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.