如何使用 Steam (OpenId) 登录我的 Firebase 支持的 Flutter 应用程序?

问题描述 投票:0回答:1

我正在构建一个 Flutter 应用程序,我希望用户能够通过 Steam 登录 (OpenId)。 该应用程序由 Firebase 提供支持。

我对整个 OpenId 世界还很陌生,我已经阅读过它,但我仍然不明白。

我发现 Firebase 支持 signinWithCustomToken 所以我想我应该获取 Steam OpenId 来获取其中之一。 我还找到了两个可能对我有帮助的软件包,但我也无法让它们工作:

  1. https://pub.dev/packages/openid_client
  2. https://pub.dev/packages/steam_login

如果尝试使用

openid_client
包中的以下示例:

_authenticate(Uri uri, String clientId, List<String> scopes) async {
    try {
      var issuer = await Issuer.discover(uri);
      var client = Client(issuer, clientId);

      print('CLAIMS:');
      print(issuer.claimsMap);

      urlLauncher(String url) async {
        if (await canLaunch(url)) {
          await launch(url, forceWebView: true);
        } else {
          throw 'Could not launch $url';
        }
      }

      var authenticator = Authenticator(client,
          scopes: scopes, port: 4000, urlLancher: urlLauncher);

      var c = await authenticator.authorize();

      closeWebView();

      print(await c.getUserInfo());
    }catch (err) {
      print(err);
    }
  }

但我不知道该送什么作为

uri
clientId
scopes
。 对于
uri
我已经尝试过
https://steamcommunity.com/openid
但是当我尝试这个时我收到一个错误,它试图Json.parse xml响应。

我还尝试了

steam_login
here的示例,但这没有任何作用,而且感觉它不应该在 Flutter 应用程序中工作(即使该包声明它与 Flutter 兼容)。

因此,如果有人可以向我解释如何通过工作示例实现这一目标,那就太好了。 如果我让它发挥作用,我计划为其他人创建一个教程/指南。

flutter dart firebase-authentication openid steam
1个回答
0
投票

我也有同样的问题。希望得到一些反馈。

© www.soinside.com 2019 - 2024. All rights reserved.