我正在使用带有 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?一旦我有了它,我所有的问题都会消失!
谢谢