【问题标题】:Using firebase google auth and google fit api with single OAuth2 token使用带有单个 OAuth2 令牌的 firebase google auth 和 google fit api
【发布时间】:2019-07-28 20:56:41
【问题描述】:

我目前正在开发一个简单的网络应用程序,它将对用户的 google fit 数据进行 GET 调用。

为了降低应用程序的复杂性,我计划将其托管在 firebase 上,并充分利用云功能、firestore 和身份验证工具。

到目前为止,我已经成功地在前端使用 googleapis 节点库通过健身范围 https://www.googleapis.com/auth/fitness.activity.read 读取了我的 google fit 数据 作为谷歌登录按钮的一部分。

如果我要使用 firebase 的 google auth 实现,这将具有与我为读取 google fit 数据创建的凭据不同的客户端 ID/不同范围。

如果我想使用 firebase 和 google fit,用户必须使用 firebase 的 google auth 登录,这样我才能验证对我的应用程序的数据库写入,并授予我从应用程序内访问他们的 google fit 数据的权限。

如果有办法可以将其结合起来,以便我可以使用单个令牌来验证和读取 google fit 数据?

【问题讨论】:

    标签: firebase oauth-2.0 google-fit google-fit-sdk fitness


    【解决方案1】:

    看起来我只需要深入挖掘一下,您可以将范围添加到您的 google auth 提供程序实例。

    https://firebase.google.com/docs/auth/web/google-signin

    var provider = new firebase.auth.GoogleAuthProvider();
    provider.addScope('https://www.googleapis.com/auth/fitness.activity.read');
    
    firebase.auth().signInWithPopup(provider).then(function(result) {
    var token = result.credential.accessToken;
    var user = result.user;
    })
    

    然后进行适应度读数,使用授权标头中返回的访问令牌

    Authorization: `Bearer ${accessToken}`
    axios.post('https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate?alt=json', data, axiosconfig)
    

    注意:如果您想在用户不在应用程序中时(在 oauth2 术语中离线)对用户数据进行后台请求,则需要结合使用 firebase 和 gapis js 库。

    【讨论】:

    • 优秀的答案,非常混乱的文档。你有没有想过另一种方法来检索访问令牌?因为当您已经登录时,就我所见,您不会经历此流程。它也会随着时间的推移而刷新
    • 我在处理 google api 时学到的一件事是使用他们的客户端库。它将为您抽象出访问令牌并刷新令牌逻辑。你到底想完成什么?我可以尝试为您指明正确的方向。
    • 我现在只是在玩它,但我想列出当前用户的“上周所有运行”。我没想过要为 Google Fit 找一个客户端库,让我看看有没有。谢谢:)
    • 这只是他们的官方图书馆,里面有你想要的 thge google fit 范围:developers.google.com/identity/protocols/oauth2/…
    • @WilliamChou 你能解释一下这些客户端库吗?我正在开发一个应用程序并尝试存储谷歌令牌,但我遇到了同样的问题,即它有刷新时间(我的问题:stackoverflow.com/questions/70673275/…
    猜你喜欢
    • 2016-08-03
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2023-02-10
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    相关资源
    最近更新 更多