我可以将GoogleAPI与通过Firebase身份验证获得的refresh_token一起使用吗?

时间:2019-09-29 03:50:53

标签: firebase google-api firebase-authentication google-api-nodejs-client

我使用Firebase身份验证。

<div class="gallery-section">
		<div class="inner-width">

      <div class="container">
        <div class="box">
          <div class="imgBox">
            <img class="" src="img/news-01.jpg">
          </div>
        </div>
        <div class="box">
          <div class="imgBox">
            <img class="" src="img/news-01.jpg">
          </div>
        </div>
        <div class="box">
          <div class="imgBox">
            <img class="" src="img/news-01.jpg">
          </div>
        </div>
      </div>
      
    </div>
</div>


我使用FirebaseFunctions的GoogleAPI。
代码是可行的。

firebase
  .auth()
  .getRedirectResult()
  .then(async function(result) {
    if (result.credential) {
      const { accessToken, idToken } = result.credential
      const { uid, refreshToken } = result.user

      // save to Firestore
      await firebase.firestore().collection('users').doc(uid)
        .set(
          { accessToken, idToken, refreshToken },
          { merge: true }
        )
    }
  })

但是,当AccessToken过期时,它将不起作用。
返回错误let oauth2Client = new google.auth.OAuth2( 'my_client_key', 'my_client_secret' ) oauth2Client.setCredentials({ access_token: accessToken, refresh_token: refreshToken }) const calendar = google.calendar({ version: 'v3', auth: oauth2Client }) const result = await calendar.calendarList.list()

invalid_grant似乎不起作用,该怎么办?

我尝试了refresh_tokengetAccessToken(),但由于同样的原因而遇到了refreshAccessToken()错误...

0 个答案:

没有答案