0

我正在使用带有 Node.js 的 react Native 来制作一个应用程序,用于使用 node.js 从 Google Fit API 数据中获取适合度以进行 api 调用,并将本机反应作为前端

在 node.js 的 googleapis 包的文档中,您必须生成一个 url,将用户重定向到 google 页面进行身份验证:

app.get('/getURL', (req, res) => {

  const oauth2Client = new google.auth.OAuth2(
    client_secret.web.client_id,
    client_secret.web.client_secret,
    'http://localhost:9001/steps'
  )

  const scopes = [ 'https://www.googleapis.com/auth/fitness.activity.read' ]

  const url = oauth2Client.generateAuthUrl({
    access_type: 'offline',
    scope:scopes,
    state: JSON.stringify({
      callbackUrl: req.body.callbackUrl,
      userID: req.body.userid
    })
  })

  res.send(url);

});

这个 url 身份验证给了我一个代码,我稍后会交换一个 `access_code(用于 API 使用)和一个 refresh_code(用于刷新具有 1 小时寿命的 access_token)

但是,使用带有 React Native 的 firebase,我可以通过弹出窗口使用 google 登录,甚至可以将该 google 帐户存储在 firebase 的用户数据库中。

我的问题是

从 firebase 和 react-native 弹出的登录只给了我 access_token,我可以用它来调用 API。但是,此令牌过期,我将无法通过自动调用调用 API,例如,每天凌晨 2:00。

有什么方法可以通过弹出的firebase google身份验证获得refresh_token?一旦我有了它,我所有的问题都会消失!

谢谢

4

0 回答 0